比如说:select a.id,a.name,(select sum(b.count),a.num-sum(b.count) from b) from a;
有这么一个语句,我想一下在b表里查出两个值来,作为两列字段跟a.id a.name两列的值同时都显示出来,但是我上面的写法会报错。不知道括号里的情况该怎么处理?
ps:当然我只是举了个例子,具体的语句要比这个复杂的多,求指点
7 个解决方案
#1
分成两个
select a.id,a.name
,(select sum(b.count) from b)
,(select a.num-sum(b.count) from b)
from a;
select a.id,a.name
,(select sum(b.count) from b)
,(select a.num-sum(b.count) from b)
from a;
#2
select sum(b.count) from b 可以作为一个表
select A.id, A.name, A.num-B.sct from a A, (select sum(b.count) sct from b) B;
select A.id, A.name, A.num-B.sct from a A, (select sum(b.count) sct from b) B;
#3
select A.id, A.name, B.sct, A.num-B.sct from a A, (select sum(b.count) sct from b) B;
#4
1.写两个标量子查询,就是两个计算列分开。
2.写成左连接的形式。
2.写成左连接的形式。
#5
楼上说的对。子查询和链接查询都可以。
链接查询吧。注意链接查询会涉及到分组汇总,楼主自己考虑吧
链接查询吧。注意链接查询会涉及到分组汇总,楼主自己考虑吧
#6
left join
#7
他这种形式 b表count 就是固定值 直接用变量存储count(*) 然后相减
#1
分成两个
select a.id,a.name
,(select sum(b.count) from b)
,(select a.num-sum(b.count) from b)
from a;
select a.id,a.name
,(select sum(b.count) from b)
,(select a.num-sum(b.count) from b)
from a;
#2
select sum(b.count) from b 可以作为一个表
select A.id, A.name, A.num-B.sct from a A, (select sum(b.count) sct from b) B;
select A.id, A.name, A.num-B.sct from a A, (select sum(b.count) sct from b) B;
#3
select A.id, A.name, B.sct, A.num-B.sct from a A, (select sum(b.count) sct from b) B;
#4
1.写两个标量子查询,就是两个计算列分开。
2.写成左连接的形式。
2.写成左连接的形式。
#5
楼上说的对。子查询和链接查询都可以。
链接查询吧。注意链接查询会涉及到分组汇总,楼主自己考虑吧
链接查询吧。注意链接查询会涉及到分组汇总,楼主自己考虑吧
#6
left join
#7
他这种形式 b表count 就是固定值 直接用变量存储count(*) 然后相减