先生,我在SQL中有一个包含以下数据的表。
ID Date Rly Equipment Type
1 3-Apr-12 SR SIV R
2 3-Apr-12 SER TM I
3 3-Apr-12 NR 3PH I
4 3-Apr-12 NCR 3PH R
5 3-Apr-12 WR ARNO I
6 3-Apr-12 WR EMC I
7 3-Apr-12 SR EMC R
8 3-Apr-12 SR Pn. Pipeline I
我在SQL中使用了一个pivot语句,用于像这样的Rlys中的计数设备
Equipment SER NR NCR WR SR TTL
SIV 1 1
TM 1 1
3PH 1 1 2
EMC 1 1 2
ARNO 1 1
Pn. Pipeline 1 1
使用这个我面临的问题是,只要设备没有出现在数据表中,就不会出现在pivot语句中。但我的要求是每个设备都会出现在主数据表中可用的数据透视表中,以便始终固定表行。请帮助左侧栏中的设备名称固定。对于例如SIV,TFP&轴承不在主数据表中,但在最终结果中是必需的。
答案 0 :(得分:0)
鉴于您必须知道其他表格中存在哪些设备,请从左设备连接到数据创建枢轴
即:如果您的查询目前看起来像
select equipment, ser, nr, ncr, wr, sr
from
(select rly, equipment from #data ) as source
pivot
(count(rly) for rly in ([ser], [nr], [ncr], [wr], [sr])) as p
并且您的设备表是#eq,然后将您的查询更改为
select eqcode, ser, nr, ncr, wr, sr
from
(select rly, eqcode from #eq left join #data on #eq.eqcode=#data.equipment) as source
pivot
(count(rly) for rly in ([ser], [nr], [ncr], [wr], [sr])) as p