【发布时间】:2011-01-13 13:02:14
【问题描述】:
我有 2 个表产品和成本
产品
ProdCode - PK
ProdName
成本
Effectivedate - PK
RetailCOst
Prodcode
我试过这个查询:
SELECT a.ProdCOde AS id, MAX(EffectiveDate) AS edate, RetailCOst AS retail
FROM cost a
INNER JOIN product b USING (ProdCode)
WHERE EffectiveDate <= '2009-10-01'
GROUP BY a.ProdCode;
嗯,它显示了正确的生效日期,但该特定生效日期的费用不匹配。
所以我想选择与每件商品匹配成本的最新日期。
例如,我选择的日期是“2009-12-25”,1 项的记录如下:
ProdCode |EffectiveDate| Cost
00010000 | 2009-01-05 | 50
00010000 | 2009-05-25 | 48
00010000 | 2010-07-01 | 40
所以结果我应该得到00010000|2009-05-25|48,因为它小于我查询的日期,并且它是该项目的最新日期。然后我想在我的查询中显示每种产品的最新成本。
希望尽快收到您的来信!谢谢!
【问题讨论】:
标签: sql mysql greatest-n-per-group