让我们考虑下表的结构
Product Year Month Price
A 2011 01 23
A 2011 02 34.
.
A 2011 12 54
B 2011 01 13
B 2011 02 12.
.
B 2011年12 20
从这张表中,我需要每3个月将值相加.
Product Year Month Price
A 2011 1-3 45
A 2011 4-6 23
A 2011 7-9 45
A 2011 10-12 162012年1-3 12 ..
有人能告诉我如何使用sql查询进行计算吗.提前谢谢!
发布于 2014-12-01 06:38:41
尝尝这个。使用Case statement对月份季度进行分组,然后查找sum of price
SELECT product,
[year],
CASE
WHEN ( [month] ) IN( '01', '02', '03' ) THEN '1-3'
WHEN ( [month] ) IN( '04', '05', '06' ) THEN '4-6'
WHEN ( [month] ) IN( '07', '08', '09' ) THEN '7-9'
WHEN ( [month] ) IN( '10', '11', '12' ) THEN '10-12'
END [Month],
Sum(Price)
FROM tablename
GROUP BY product,
[year],
CASE
WHEN ( [month] ) IN( '01', '02', '03' ) THEN '1-3'
WHEN ( [month] ) IN( '04', '05', '06' ) THEN '4-6'
WHEN ( [month] ) IN( '07', '08', '09' ) THEN '7-9'
WHEN ( [month] ) IN( '10', '11', '12' ) THEN '10-12'
END 注意:通过查看month数据,它看起来像一个varchar列,但您可以将它更改为廷因特
发布于 2014-12-01 06:40:44
尝试在CASE子句中使用GROUP BY:
...
GROUR BY [Year], CASE WHEN Month in (1,2,3) THEN '1-3'
WHEN Month in (4,5,6) THEN '4-6'
...
END 发布于 2014-12-01 06:49:55
选择产品,年份,当月份在1到3之间,然后'01-03‘其他情况,当月份在4到6之间,然后'04-06’其他情况,当月份在7到9之间,然后'07-09‘其他'10-12’结束,和(价格) 来自Table1 按产品分组,年份,当月份在1到3之间,然后'01-03‘情况在4到6之间,然后'04-06’其他情况在7到9之间,然后'07-09‘其他'10-12’结束
上面的sql查询将给出所需的结果,如果您不使用我在月份标签中使用的前导零,那么您将不会得到按月份排序的结果。
https://stackoverflow.com/questions/27222857
复制相似问题