如何在透视图争论中不对值进行硬编码的情况下透视我的sql server表?

时间:2019-05-31 16:05:08

标签: sql sql-server pivot-table

我有一个包含3列数据的表。该数据在过去两年中有一个季度的“季度数”列。因此,该数据每季度不断变化。由于值每季度都在变化,因此我无需对轴参数进行硬编码就可以旋转该表。

我尝试使用标准数据透视表和现有列进行数据透视,但是会引发错误。

Msg 8114, Level 16, State 1, Line 5
Error converting data type nvarchar to int.
Msg 473, Level 16, State 1, Line 5
The incorrect value "DATE_NBR" is supplied in the PIVOT operator.



    select
      *
     FROM (Select METRIC, DATE_NBR as DN, COUNT from 
             QC_CM_DATA) p
     pivot
     (avg(COUNT) for DN IN (DATE_NBR)) as pivota

在我的SQL Server中,存在下表-QC_CM_DATA

METRIC--    COUNT-- DATE_NBR

A  --      1   --     2017Q1
A  --      2  --      2017Q2
A  --      3  --      2017Q3
A  --      4   --     2017Q4 
B   --     1  --      2017Q1
B  --      2  --      2017Q2
B   --     3  --      2017Q3
B    --    4   --     2017Q4
C   --     1    --    2017Q1
C   --     2   --     2017Q2
C   --     3  --      2017Q3
C   --     4   --     2017Q4

我正尝试将其转为以下方式:

METRIC   2017Q1    2017Q2    2017Q3   2017Q4
A    --    1    --    2  --    3  --   4
B    --    1   --     2  --    3  --   4
C    --    1   --     2  --    3  --   4

您能帮我解决上述问题吗?是否可以在不进行硬编码的情况下透视表?预先感谢!

0 个答案:

没有答案