У меня есть некоторые данные, которые мне нужно суммировать за каждый месяц, и мне трудно понять, как получить 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
Извините, что не включил это раньше!
Я уверен, что это самый простой пример использования строки над разделом, возможно, это связано с отсутствием у меня опыта программирования, но это одна из концепций, которую я просто не могу понять.
Это то, что у меня есть до сих пор, но я не уверен, куда идти дальше.
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 partition. Я пытался читать статьи, которые я нашел в Интернете, но ни одна из них не кажется мне понятной. Они слишком продвинуты, и я сразу теряюсь. Также не помогает то, что я не очень хорошо учусь, читая, мне нужно это видеть. в действии и понять, как это работает.
В любом случае спасибо за помощь. Вы, ребята, рок! РЕДАКТИРОВАТЬ:
фактический желаемый результат:
July August September
0 51146.43 1099.81
Извините, что не включил это раньше!
DATENAME(MONTH,[ClaimDate])
вместо этого неуклюжего выраженияCASE
- person Lamak   schedule 10.10.2014