sql 如何使几个子查询的结果用一列连接起来显示(试过合并、左右连接好像都不行),求大神指导。

具体如下所示:/*测试数据createtabletb(xzvarchar(10),lxvarchar(10),bzvarchar(10),bhint)insertinto... 具体如下所示:/*测试数据
create table tb(xz varchar(10) , lx varchar(10) ,bz varchar(10),bh int)
insert into tb values('x1' , '1' , '33', 74)
insert into tb values('x1' , '2', '34' , 83)
insert into tb values('x1' , '3' , '33', 93)
insert into tb values('x1' , '1' , '33', 84)
insert into tb values('x1' , ' ' , '33', 94)
insert into tb values('x2' , '1' , '34', 99)
create table tb1(lx varchar(10) , b2 varchar(10) )
insert into tb1 values('1' , 'zy')
insert into tb1 values('2' , 'mz')
insert into tb1 values('3' , 'wy')
*/
SELECT ---子查询1
tb.xz as 小组,tb1.B2 as 类型, count(tb.bh) as 总数
FROM tb
LEFT OUTER JOIN tb1 ON tb.lx = tb1.lx
group by tb.xz,tb1.B2;
SELECT ---子查询2
tb.xz as 小组,tb1.B2 as 类型, count(tb.bh) as '33总数'
FROM tb
LEFT OUTER JOIN tb1 ON tb.lx = tb1.lx
WHERE BZ='33'
group by tb.xz,tb1.B2;
SELECT ---子查询3
tb.xz as 小组,tb1.B2 as 类型, count(tb.bh) as '34总数'
FROM tb
LEFT OUTER JOIN tb1 ON tb.lx = tb1.lx
WHERE BZ='34'
group by tb.xz,tb1.B2;
----------想变成这样---------
小组 类型 总数 33总数 34总数
x1 NULL 1 1 NULL
x1 mz 1 NULL 1
x1 wy 1 1 NULL
x1 zy 2 2 NULL
x2 zy 1 NULL 1
展开
 我来答
seo0763_com
2013-05-17 · TA获得超过128个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:162万
展开全部
这样合并就是用union/union all .
你每个子查询都要有5列的结果。才会这样显示,你现在是3列合并后还是3列。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiao_liu
2013-05-17 · TA获得超过422个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:245万
展开全部
试试以下SQL语句能否满足你的要求:
select A.小组,A.类型,B.总数,A.子类型,A.子类型总数 from
(select tb.xz as 小组,tb1.b2 as 类型,tb.bz as 子类型,count(tb.bz) as 子类型总数
from tb left join tb1 on tb.lx=tb1.lx
group by tb.xz,tb1.b2,tb.bz
order by 子类型) A left join (select tb.xz as 小组,tb1.b2 as 类型,count(tb.xz) as 总数
from tb left join tb1 on tb.lx=tb1.lx
group by tb.xz,tb1.b2) B
on A.小组=B.小组 and (A.类型=B.类型 or (A.类型 is null and B.类型 is null))
order by A.小组,A.类型,A.子类型

不建议33总数和34总数横着放,因为我觉得你还可能出现35总数或36总数等等,这样,列数就不固定了,根本写不出这样的语句,如果坚着放,你就可以无限扩大bz的种类。

运行结果如下:

小组 类型 总数 子类型 子类型总数
x1 mz 1 34 1
x1 wy 1 33 1
x1 zy 2 33 2
x1 1 33 1
x2 zy 1 34 1

以上还有疑问,可以Hi我。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
射手幽灵伊
2013-05-17 · TA获得超过2716个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:1969万
展开全部
使用pivot试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式