求SQL语句。(SQL7)(100分)

  • 主题发起人 主题发起人 少爷的拐杖
  • 开始时间 开始时间

少爷的拐杖

Unregistered / Unconfirmed
GUEST, unregistred user!
如下两个表:
id 名称 规格 单位 。。。
1 aaa b c
2 rrr e f
3 ddd q p
.....
----------------------------------
id 所属id 数量
1 1 12
2 1 13
3 3 9
4 3 23
。。。。
如何查询得到
名称 规格 单位 数量
aaa b c 25
ddd q p 23

谢谢
 
假设上表为T_A,下表为T_B:

select max(A.名称),max(A.规格),max(A.单位),sum(B.数量)
from T_A A,T_B B
where B.所属id = A.id
and A.名称 in ('aaa','ddd')
 
SELECT 名称,规格,单位,SUM(数量)
FROM A,B
WHERE A.所属ID=B.ID AND A.名称 IN ('aaa','bbb')
GROUP BY 名称,规格,单位
 
不不不。是得到
名称 规格 单位 数量
aaa b c 25
ddd q p 23
......
少打个省略号:)
 
上表为AA,下表为BB:
SELECT a.名称, a.规格, a.单位,
(SELECT SUM(b.数量)
FROM bb b
WHERE a.id = b.B.所属id
GROUP BY b.所属id ) '数量'
FROM aa a

这样得到
名称 规格 单位 数量
aaa b c 25
ddd q p 23
rrrr e f null
。。。。。。。



SELECT A.名称, A.规格, A.单位, SUM(B.数量) '数量'
FROM aa A, bb B
WHERE B.所属id = A.id
GROUP BY a.名称, a.规格, a.单位

这样得到
名称 规格 单位 数量
aaa b c 25
ddd q p 23
。。。。。。。
 
省略号?呵呵,那就改一点:
假设上表为T_A,下表为T_B:

select max(A.名称),max(A.规格),max(A.单位),sum(B.数量)
from T_A A,T_B B
where B.所属id = A.id
group by A.名称,A.规格,A.单位
 
select * from (select sun(b.数量) from 表2 b gruopby b.所属id a ), 表1 b where a.id =b.id
 
select b.所属id,a.名称,a.规格,a.单位,数量=sum(b.数量) from b
left outer join a on (b.所属id=a.id)
group by b.所属id,a.名称,a.规格,a.单位

应得到结果:
所属id 名称 规格 单位 数量
1 aaa b c 25
3 ddd q p 32
 
DJ的答案一次试验成功.
谢谢各位.
 
后退
顶部