我有一些数据我需要为每个月进行总结,并且我无法弄清楚如何让它有12列(每月一个),总计为月。按分区划分总计数据的分区
例子:
数据作为:
GrossAmt ClaimDate
49764.00 2014-08-21 00:00:00.000
1382.43 2014-08-27 00:00:00.000
602.77 2014-09-02 00:00:00.000
497.04 2014-09-02 00:00:00.000
期望的结果:
GrossAmt ClaimDate
51146.43 August
1099.81 September
实际所需的结果:
July August September
0 51146.43 1099.81
对不起,我以前不包括此!
我相信这是使用row over partition的最基本的例子,也许这是我缺乏编程背景,但这是一个概念,我不能笼络我的头。
这是我到目前为止,但我不知道下一步该去哪里。
With CTE ([GrossAmt],ClaimMonth)
AS(
SELECT TOP 10000
Sum([GrossAmt]) as TotalClaimAmt
,CASE WHEN Month([ClaimDate]) = 1 THEN 'January'
WHEN Month([ClaimDate]) = 2 THEN 'February'
WHEN Month([ClaimDate]) = 3 THEN 'March'
WHEN Month([ClaimDate]) = 4 THEN 'April'
WHEN Month([ClaimDate]) = 5 THEN 'May'
WHEN Month([ClaimDate]) = 6 THEN 'June'
WHEN Month([ClaimDate]) = 7 THEN 'July'
WHEN Month([ClaimDate]) = 8 THEN 'August'
WHEN Month([ClaimDate]) = 9 THEN 'September'
WHEN Month([ClaimDate]) = 10 THEN 'October'
WHEN Month([ClaimDate]) = 11 THEN 'November'
WHEN Month([ClaimDate]) = 12 THEN 'Decmber'
End AS ClaimMonth
FROM [Database].[dbo].[Table]
)
Group BY [ClaimDate]
)
Select * From CTE
也许我可能需要的是关于Row over分区如何工作的基本教程。我曾尝试阅读我在网上找到的文章,但没有一篇看起来对我有意义,他们是先进的方式,我马上就迷路了,也没有帮助我通过阅读学得不好,我需要看到它在行动中,并理解它是如何工作的。
无论如何,感谢您的帮助。你们好棒! 编辑:
实际所需的结果:
July August September
0 51146.43 1099.81
对不起,我以前不包括此!
您可以使用'DATENAME(MONTH,[ClaimDate])'代替那个awkard'CASE'表达式 – Lamak 2014-10-10 15:04:28
好的呼叫。谢谢! – 2014-10-10 15:22:49