sql 横向查找合并
时间:2011-04-21
来源:互联网
我以下有表1,表2两个表,要得到表3的结果:
表1:
编号 规格A 名称A 规格B 名称B 规格C 名称C 规格D 名称D 规格E 名称E
1 28*14 aaa 26*18.5 aaa
2 26.5*21 bbb 28*18.5 aaa 28*18.5 bbb
3 28.5*21 ccc 21*12 ccc 21*12 ddd 28.5*21 ddd 30*32 eee
表2:
编号 规格
1 28*14
1 26*18.5
2 26.5*21
2 28*18.5
3 28.5*21
3 21*12
3 30*32
表3
编号 规格 名称
1 28*14 aaa
1 26*18.5 aaa
2 26.5*21 bbb
2 28*18.5 aaa/bbb
3 28.5*21 ccc/ddd
3 21*12 ccc/ddd
3 30*32 eee
表1:
编号 规格A 名称A 规格B 名称B 规格C 名称C 规格D 名称D 规格E 名称E
1 28*14 aaa 26*18.5 aaa
2 26.5*21 bbb 28*18.5 aaa 28*18.5 bbb
3 28.5*21 ccc 21*12 ccc 21*12 ddd 28.5*21 ddd 30*32 eee
表2:
编号 规格
1 28*14
1 26*18.5
2 26.5*21
2 28*18.5
3 28.5*21
3 21*12
3 30*32
表3
编号 规格 名称
1 28*14 aaa
1 26*18.5 aaa
2 26.5*21 bbb
2 28*18.5 aaa/bbb
3 28.5*21 ccc/ddd
3 21*12 ccc/ddd
3 30*32 eee
作者: booby 发布时间: 2011-04-21
select 表2.编号,表2.规格,T.名称 from 表2,
(SELECT distinct 编号,规格A as 规格,名称A as 名称 FROM 表1 union
SELECT distinct 编号,规格B as 规格,名称B as 名称 FROM 表1 union
SELECT distinct 编号,规格C as 规格,名称C as 名称 FROM 表1 union
SELECT distinct 编号,规格D as 规格,名称D as 名称 FROM 表1 union
SELECT distinct 编号,规格E as 规格,名称E as 名称 FROM 表1 ) T
where 表2.编号=T.编号 and 表2.规格=T.规格
(SELECT distinct 编号,规格A as 规格,名称A as 名称 FROM 表1 union
SELECT distinct 编号,规格B as 规格,名称B as 名称 FROM 表1 union
SELECT distinct 编号,规格C as 规格,名称C as 名称 FROM 表1 union
SELECT distinct 编号,规格D as 规格,名称D as 名称 FROM 表1 union
SELECT distinct 编号,规格E as 规格,名称E as 名称 FROM 表1 ) T
where 表2.编号=T.编号 and 表2.规格=T.规格
作者: marco 发布时间: 2011-04-21
不对,关键我还要合并
作者: booby 发布时间: 2011-04-21
晕,你这个需求居然还有多行合并一行的问题,上面那个还不完整,得将表1进行处理,用IIF来判断各规格栏,然后对名称进行合并才能处理。
大概思路就是这样,具体自己完善一下吧!
大概思路就是这样,具体自己完善一下吧!
作者: marco 发布时间: 2011-04-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28