我有一张设备表,一张客户表和一张稀疏的设备和客户表.我想生成一个查询,如果设备/客户表记录存在则返回1,如果不是每个客户则返回0.这个问题只有少数客户,所以我想要的应该是这样的:
EquipmentID Cust1 Cust2 Cust3 ----------- ----- ----- ----- 1234 1 0 1 1357 0 1 0 2234 1 0 0
我可以使用a cross join
来获取可能记录的主列表,但是返回行中的信息.我希望在列中看到它,但PIVOT
关键字要求我首先命名列.我需要的是列名(Cust1
,Cust2
...)是动态的.
如果要这样做,则必须动态创建查询字符串,然后将其传递给sp_execute
存储过程.AFAIK,如果不动态构造查询字符串,就没有办法做到这一点.