Я пытаюсь повернуть таблицу, но также сгруппировать каждую запись в одну.Это моя проблема:
У меня есть таблица, в которой есть [SchemeCode], [MonthYear] и [Доход].Каждый [SchemeCode] имеет несколько [MonthYear] и соответствующий ему [Доход].
| Scheme Code | MonthYear | Revenue |
|-------------|-----------|---------|
| 18VDA | 2018.1 | 100 |
| 18VDA | 2018.2 | 200 |
| 18VDA | 2018.3 | 200 |
Но я пытаюсь сделать так, чтобы получилось так:
| Scheme Code | 2018.1 | 2018.2 | 2018.3 |
|-------------|--------|--------|--------|
| 18VDA | 100 | 200 | 300 |
IЯ знаю, как работает нормальный поворот, но проблема в том, что когда я это делаю, выходные данные сохраняют три записи 18VDA следующим образом:
| Scheme Code | 2018.1 | 2018.2 | 2018.3 |
|-------------|--------|--------|--------|
| 18VDA | 100 | -- | -- |
| 18VDA | -- | 200 | -- |
| 18VDA | -- | -- | 300 |
Я хочу, чтобы коды схемы также объединялись в один.Ниже приведен код, который я использовал для создания таблицы выше:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME([MonthYear])
from TableA
group by [MonthYear]--, id
--order by id
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = '[Scheme Code],' + @cols + '
from TableA
pivot(sum([Revenue]) for MonthYear in (' + @cols + ')
) as RevenueMonth'
execute(@query);
Может кто-нибудь помочь мне с тем, как я могу это сделать?
Спасибо!