旋转时的动态列

时间:2009-04-01 16:12:16

标签: sql pivot

我有一张设备表,一张顾客表和一张稀疏的设备和客户表。我想生成一个查询,如果设备/客户表记录存在则返回1,如果不是每个客户则返回0。在这个问题中只有少数客户,所以我想要的应该是这样的:

EquipmentID   Cust1   Cust2   Cust3
-----------   -----   -----   -----
       1234       1       0       1
       1357       0       1       0
       2234       1       0       0

我可以使用cross join来获取可能记录的主列表,但会返回行中的信息。我希望在列中看到它,但PIVOT关键字要求我先命名列。我需要的是列名称(Cust1Cust2 ...)是动态的。

2 个答案:

答案 0 :(得分:5)

如果要这样做,则必须动态创建查询字符串,然后将其传递给sp_execute存储过程。 AFAIK,没有动态构建查询字符串的方法。

答案 1 :(得分:0)

如果您有一个方便的报告工具,请使用当前查询并制作“martix”,“交叉表”或“数据透视表”报告。