我试图对时间或期间的数量进行分组,我有下一个表
SALES SALES_DATE 的Sales_item SALES_QUANTITY
我正在做的查询
SELECT DATE,ITEM,SUM(QUANTITY)
FROM SALES
WHERE DATE BETWEEN "DATE1" AND "DATE2";
问题是我不需要DATE出现,如果我寻找十月的销售,它应该显示十月的总和而不显示日期...非常感谢你的帮助
实施例: 我得到了什么...
DATE ITEM SALES
2012-06-12 14152 7
2012-06-14 14152 15
2012-06-16 14157 25
我需要什么:06-12和06-16之间的查询
ITEM SALES
14152 22
14157 25
非常感谢你
答案 0 :(得分:1)
如果您希望按月计算总和,则可以按表达式将其包括在组中。这是一种方式:
SELECT extract(year from DATE) as yr, extract(month from date) as mon, ITEM, SUM(QUANTITY)
FROM SALES
WHERE DATE BETWEEN "DATE1" AND "DATE2"
group by extract(year from DATE), extract(month from date)
order by 1, 2
虽然extract
是标准SQL,但并非所有数据库都支持它。例如,您可以在Oracle中使用to_char(date, 'YYYY-MM')
或在SQL Server中使用datepart(month, date)
。