1

以下のように、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 でいくつかのソリューションを試しましたが、うまくいきませんでした。

あなたの助けに感謝します:)

4

1 に答える 1