所以我有以下表格:
Table 1
fname mi lname empid
John A Smith 1202
Bob Doe 9815
Table 2
unid empid
1015 1202
1015 9815
Table 3
unid Item
1015 ABC
1015 DEF
我的预期输出应该是(当提供unid = 1015时)
fname mi lname item
John A Smith ABC, DEF
Bob Doe
现在这将是理想的,但我非常乐意处理前端重复的[Item]值。
我目前的陈述是:
select p.FNAME,p.MI,p.LNAME, ac.EQUIP from table1 t1, table2 t2, table3 t3
where t1.EMPID = t2.EMPID and t2.UNID = t3.UNID and t2.unid = '1015' group by t1.FNAME, t1.MI,
t1.LNAME,t3.EQUIP
对于我的生活,我无法弄清楚如何将item中的值(可以是0或更多,最多为8)作为逗号分隔的字符串。我的问题是,由于站点/客户端的限制,我不能使用SP,但这必须在一个SQL语句中完成。
这是在SQL SERVER 2008 R2上。
答案 0 :(得分:1)
Select distinct t.fname,t.mi,t.lname,
STUFF((Select distinct i.item + ','
from Table3 i
where t.unid = tt.unid AND i.unid = '1015'
ORDER BY i.unid
FOR XML PATH(''),TYPE).value('.', 'NVARCHAR(MAX)')
, 1, 0, ' ') from Table1 t
INNER JOIN Table2 tt
ON tt.empid = t.empid
group by
t.FNAME,
t.MI,
t.LNAME