SQL两个表关联查询后如何将多行数据转换成一行多列,我查到的结果如图所示,希望达到的效果如下所诉

第一个表是invmb 字段有mb001,mb002,mb003
第二个表是bommd 字段有md001,md002
其中md001,md002都是对应表mb001字段的,但在bommd中md001会对应多个md002
我用关联查询SQL语句是SELECT md001,invmb1.mb002,md002,
case
when md002 like'1%' THEN invmb2.mb003
when md002 like'2%' THEN invmb2.mb002
end
from bommd inner join invmb invmb1 on invmb1.mb001=md001
inner join invmb invmb2 on invmb2.mb001=md002 查询出来的结果是
A01 成品1 1A-1 a11
A01 成品1 2A-2 a2
B01 成品2 1B-1 b11
B01 成品2 2B-2 b2
其中表invmb的所有数据是
mb001 mb002 mb003
A01 成品1 成品11
1A-1 a1 a11
2A-2 a2 a22
B01 成品2 成品22
1B-1 b1 b11
2B-2 b2 b22
表bommd所有数据是
md001 md002
A01 1A-1
A01 2A-2
B01 1B-1
B01 2B-2
我希望得到的结果是
A01 成品1 1A-1 a11 2A-2 a2
B01 成品2 1B-1 b11 2B-2 b2
在线跪求啊。。

oracle 中max 加上deocde可以实现。。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答