一个sql的问题求教?
sql server 2005
id 月份 联系人1,联系人2,联系人3
1 1 王1 王2 王3
1 2 王2 王3 王1
1 3 王1 王4 王5
1 4 王2 王1 王3
根据id汇总,要求汇总结果如下
1 王1 王2 王3
或
1 王2 王3 王4
......
汇总后联系人仍为3个字段,汇总值是联系人并集中的任意3个,
但是联系人1,联系人2,联系人3不能重复.
------解决方案--------------------select tab01.id ,min(tab01.id1) as id1 ,min((case when minid1 <> tab01.id2 then tab01.id2 end)) as id2,
min((case when minid1 <> tab01.id3 and minid2 <> tab01.id3 then tab01.id3 end)) as id2
from tab01
inner join
(select tab01.id ,min(tab01.id1) as minid1 ,min((case when minid1 <> tab01.id2 then tab01.id2 end)) as minid2
from tab01 inner join (select id ,min(id1) as minid1 from tab01 group by id) a on tab01.id=a.id group by tab01.id ) b
on tab01.id=b.id
group by tab01.id
--结果
1 王1 王2 王3