从我的表sql server更改我的数据结果

vtwuwzda  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(227)
Quarters    Status1 Status2 Status3 Status4
Quarter1    NULL    1        NULL   1
Quarter3    NULL    NULL     NULL   1
Quarter4    NULL    NULL     NULL   2
Quater1      0       0        0     0
Quater2      0       0        0     0
Quater3      0       0        0     0
Quater4      0       0        0     0

当我执行查询时,给我这样的结果

7xzttuei

7xzttuei1#

这里有一个更具体的支点。

Select *
 From  (
         Select Quarters = concat('Quarter',DATEPART(QUARTER,EndDate))
               ,Item     = [Name]
               ,Value    = count(*)
          From  TS
          Group By DATEPART(QUARTER,EndDate),[Name]
        Union All
        Select Quarters
              ,Item
              ,Value = 0
         From ( values ('Quarter1')
                      ,('Quarter2')
                      ,('Quarter3')
                      ,('Quarter4')
              ) A(Quarters)
         Cross Join ( Select distinct Item=[Name] from TS)  B
       ) src
 Pivot ( sum(Value) for Item in ([Status1],[Status2],[Status3],[Status4],[Status5],[Status6]) ) pvt
zlhcx6iw

zlhcx6iw2#

可以使用pivot和unpivot关系运算符将表值表达式更改为另一个表。

SELECT <<Columns>> 
FROM <<Tables>> 
PIVOT
 (
   AggregateFunction(<<ColumnToBeAggregated>>)
   FOR PivotColumn IN (<<PivotColumnValues>>)
 ) AS <<Alias>>

来源:sql server docs pivot/&unpivot

相关问题