三个表组合问题

zhjs0505 2016-04-11 04:48:48





有三个表层数列不同,如何把这三个表组合到一个表中,并且分层数
大神,帮帮忙
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-04-12
  • 打赏
  • 举报
回复
SELECT 编码 
,MAX(CASE WHEN Tab=1 THEN 编码 END) AS 编码1
,MAX(CASE WHEN Tab=1 THEN 价格 END) AS 价格1
,MAX(CASE WHEN Tab=2 THEN 编码 END) AS 编码2
,MAX(CASE WHEN Tab=2 THEN 价格 END) AS 价格2
,MAX(CASE WHEN Tab=3 THEN 编码 END) AS 编码3
,MAX(CASE WHEN Tab=3 THEN 价格 END) AS 价格3
FROM 
(SELECT  层数,编码=编码1,价格=价格1,Tab=1 FROM    t1
UNION ALL
SELECT  *,Tab=2 FROM    t2
UNION ALL
SELECT  *,Tab=3 FROM    t3
) AS a
GROUP BY 层数
多敲了"*"去掉
zhjs0505 2016-04-12
  • 打赏
  • 举报
回复
引用 1 楼 roy_88 的回复:
SELECT 编码 
,MAX(CASE WHEN Tab=1 THEN 编码 END) AS 编码1
,MAX(CASE WHEN Tab=1 THEN 价格 END) AS 价格1
,MAX(CASE WHEN Tab=2 THEN 编码 END) AS 编码2
,MAX(CASE WHEN Tab=2 THEN 价格 END) AS 价格2
,MAX(CASE WHEN Tab=3 THEN 编码 END) AS 编码3
,MAX(CASE WHEN Tab=3 THEN 价格 END) AS 价格3
FROM 
(SELECT  层数,编码=编码1,价格=价格1,*,Tab=1 FROM    t1
UNION ALL
SELECT  *,Tab=2 FROM    t2
UNION ALL
SELECT  *,Tab=3 FROM    t3
) AS a
GROUP BY 层数
会有错误:使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。 如果把表达式数目设置成一样,又会提示多次为 'a' 指定了列 '层数' 麻烦看一下怎么解决
中国风 2016-04-11
  • 打赏
  • 举报
回复
SELECT 编码 
,MAX(CASE WHEN Tab=1 THEN 编码 END) AS 编码1
,MAX(CASE WHEN Tab=1 THEN 价格 END) AS 价格1
,MAX(CASE WHEN Tab=2 THEN 编码 END) AS 编码2
,MAX(CASE WHEN Tab=2 THEN 价格 END) AS 价格2
,MAX(CASE WHEN Tab=3 THEN 编码 END) AS 编码3
,MAX(CASE WHEN Tab=3 THEN 价格 END) AS 价格3
FROM 
(SELECT  层数,编码=编码1,价格=价格1,*,Tab=1 FROM    t1
UNION ALL
SELECT  *,Tab=2 FROM    t2
UNION ALL
SELECT  *,Tab=3 FROM    t3
) AS a
GROUP BY 层数

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧