我有一张设备表,一张顾客表和一张稀疏的设备和客户表。我想生成一个查询,如果设备/客户表记录存在则返回1,如果不是每个客户则返回0。在这个问题中只有少数客户,所以我想要的应该是这样的:
EquipmentID Cust1 Cust2 Cust3
----------- ----- ----- -----
1234 1 0 1
1357 0 1 0
2234 1 0 0
我可以使用cross join
来获取可能记录的主列表,但会返回行中的信息。我希望在列中看到它,但PIVOT
关键字要求我先命名列。我需要的是列名称(Cust1
,Cust2
...)是动态的。
答案 0 :(得分:5)
如果要这样做,则必须动态创建查询字符串,然后将其传递给sp_execute
存储过程。 AFAIK,没有动态构建查询字符串的方法。
答案 1 :(得分:0)
如果您有一个方便的报告工具,请使用当前查询并制作“martix”,“交叉表”或“数据透视表”报告。