oracle列转行,以逗号分隔,并且数据是根据2个字段分组!
oracle列转行,以逗号分隔,并且数据是要分组的! 这个研究了一天了,简单的,不分组或者根据一个字段分组的是没有问题的,但是问题是要根据两个字段分组,试了好长时间数据总是不正确,so~ 只能来求助了!
主表结构A:eid 表计id,beid 设备id,
附表B:beid 设备id,bid 建筑物id
两个表left join值为:
eid beid bid
201 1 1
201 2 4
201 5 4
201 6 4
201 3 15
201 4 28
202 10 1
202 11 1
202 12 15
要求查询出来的格式为:
eid beid bid
201 1 1
201 2,5,6 4
201 3 15
201 4 28
202 10,11 1
202 12 15
------解决方案--------------------
eid beid bid
select eid,wm_concat(a.beid) beid,bid from a left join b on a.beid=b.beid group by eid,bid
union
select eid,a.beid beid,wm_concat(bid) from a left join b on a.beid=b.beid group by eid,bid
------解决方案--------------------SQL code
select a.eid,wm_concat(a.beid) beid,b.bid from a left join b on a.beid=b.beid group by a.eid,b.bid;