使用另一个表中的值创建透视查询,而不是编写动态查询

时间:2019-06-21 09:28:48

标签: sql sql-server sql-server-2016

我下面有一个枢轴查询,因为它不喜欢

,所以它不起作用
  

对于Des in(选择......

部分。通常,在选择位置,我会动态写入列名称。但是我想知道是否有一种方法可以运行此数据透视表而不必动态编写查询,而是使用表tblReg中的值?

 select * from
 (
      select Id, Des, Val from tblData
      where Date = '2019-06-20' and Des in (select IndVar from tblReg where)
 )source pivot(max(Val) for Des in (select QUOTENAME (IndVar) from tblReg)) 
 as pvt

1 个答案:

答案 0 :(得分:0)

使用Des的值作为列名

select * from
     (
          select Id, Des, Val from tblData
          where Date = '2019-06-20' and Des in (select IndVar from tblReg where)
     )source pivot(max(Val) for Des in ([col1],[col2],[col3]....)) 
     as pvt