假设我想在超市中选择3个畅销书。要做到这一点,我要补充的每个销售以获取每种产品的总:如何从子查询中为每行选择最大日期
SELECT TOP(3) *
FROM
(
SELECT
SUM(s.individual_sale) AS totalsales,
p.productID AS ID,
p.productName AS Name
FROM
sales s,
products p
WHERE
1=1
AND p.productID = s.productID
GROUP BY
p.productID,
p.productName
) AS top_sellers
ORDER BY
top_sellers.totalsales DESC
然后,它返回我是这样的:
ID .. |请将.Name | .totalsales
55 | .milk .... | 0.1000
24 | .candy |。0.800
67 | .juice ... | 0.500
现在我想检索包含这些项目中每一个的最后一个销售的第四列,如向每个项目查询“MAX saledate”。我如何实现这一目标?
编辑:添加MAX(s.saledate)没有帮助。它检索像2012年1月1日到所有行的日期,但如果我单独查询MAX(s.saledate)上面的每个条目,它会返回正确的日期...我的问题是,我怎么能添加列MAX (s.saledate)为每个产品,使用相同的查询,显示3畅销书。
为什么MAX(saledate)不能正常工作? – samjudson 2013-03-13 17:04:01
我不知道如何在我的代码上实现它。你可以帮帮我吗? – 2013-03-13 17:05:29
就像一个SUM,除了MAX MAX(s.saledate) – samjudson 2013-03-13 17:06:27