以下のように、SQL Server で動的ピボット クエリを作成することができました。
DECLARE @sql nvarchar(max),
@columns nvarchar(max)
SELECT @columns = STUFF((SELECT DISTINCT ',' + QUOTENAME(nationality)
FROM NewComers
FOR XML PATH('')), 1, 1, '')
SELECT @sql = 'SELECT p.registrationdate, '+ @columns +
' FROM (SELECT s.registrationdate, s.Nationality FROM newcomers s) AS t
PIVOT (
COUNT(Nationality) FOR nationality IN (' + @columns+ ')) p'
EXEC (@sql)
私の問題は、結果の最後に列を追加したいということです。したがって、現在、次の結果が得られます。
registrationdate GER TUR CAN AUS
------------------ ----- ----- ----- -----
16/11/2016 10 8 6 7
21/08/2020 4 5 3 2
08/04/2019 1 3 5 0
結果としてこれが必要です:
registrationdate GER TUR CAN AUS Total
------------------ ----- ----- ----- ----- -------
16/11/2016 10 8 6 7 31
21/08/2020 4 5 3 2 14
08/04/2019 1 3 5 0 9
Stack Overflow でいくつかのソリューションを試しましたが、うまくいきませんでした。
あなたの助けに感謝します:)