没有令人羡慕的外表,但求一颗纯洁的心;没有出众的智慧,但求拥有自己的思维;也许很胆怯,但要求自己敢于挑战;也许很懦弱,但要做真实的自己!

一道数据库面试题

上一篇 / 下一篇  2010-02-28 22:43:55 / 个人分类:数据库

有两个表
表一AA

种类T    库存总量S

A        997    

B        1234

表二BB

种类T    出库数量S

A        105

A        213

B        116

B        211

B        303

用一条SQL语句求出A,B各剩下多少?

 

我自己的写法:

select AA.A-sum(BB.A)  as A剩余,A1.B-sum(BB.B)  as B剩余from BB,AA   GROUP BY AA.A,AA.B

不知道是否妥

 

另解,还未验证

SELECT AA.T AS种类, AA.S - SUM(BB.S) AS剩下

FROM AA INNER JOIN

     BB ON AA.T = BB.T

GROUP BY AA.T, AA.S

 


TAG:

fbs19871014的个人空间 引用 删除 fbs19871014   /   2010-03-22 14:56:08
select t1.type,(t1.sl1-t2.sl2) as sl
from
(
select type ,sum(kczl) as sl1
from aa
group by type
)t1,
(
select type,sum(cksl) as sl2
from bb
group by type
)t2
where t1.type=t2.type
sunny的测试生活 引用 删除 测霸   /   2010-03-02 11:31:17
select AA.s-
    (select sum(BB.s) from B  where BB.T=AA.T)
        as "price" from AA
在pl/sql中实验通过。
yyj0720的个人空间 引用 删除 yyj0720   /   2010-03-02 08:30:56
select aa.s- sum(bb.s) from aa,bb where aa.t=bb.t group by aa.t,aa.s;
agrapea的个人空间 引用 删除 agrapea   /   2010-03-01 14:58:36
偶一般喜欢一步步来,比较死脑筋
SELECT AA.T 种类,(AA.S-CC.S) 剩余数量
FROM AA,
(SELECT BB.T 种类,SUM(BB.S) 出库数量
FROM BB GROUP BY BB.T) CC
WHERE AA.T=CC.T
测试新新手的个人空间 引用 删除 测试新新手   /   2010-03-01 14:31:56
方法一不用group的吧.写法应该没错.
lovecy的个人空间 引用 删除 lovecy   /   2010-03-01 13:57:49
方法一没看懂什么意思~
方法二是正确的
没想到一个小小的问题居然把我难住了....
死读书了
spring的个人空间 引用 删除 lengchun10   /   2010-03-01 13:49:39
路过,呵呵
牧师的个人空间 引用 删除 EasternCowboy   /   2010-03-01 11:35:05
这非常简单,只要理解题目的含义就OK
 

评分:0

我来说两句

Open Toolbar