1

我试图对时间或期间的数量进行分组,我有下一张表

销售 SALES_DATE SALES_ITEM SALES_QUANTITY

我正在做的查询是

SELECT DATE,ITEM,SUM(QUANTITY) 
FROM SALES 
WHERE DATE BETWEEN "DATE1" AND "DATE2";

问题是我不需要显示日期,如果我查找 10 月的销售额,它应该出现 10 月的总和而不显示日期......非常感谢您的帮助

示例:我得到什么...

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

非常感谢你

4

1 回答 1

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,但并非所有数据库都支持它。例如,您可以to_char(date, 'YYYY-MM')在 Oracle 或datepart(month, date)SQL Server 中使用。

于 2012-10-01T18:06:22.743 回答