这个SQL怎么写,汇总 ( 积分: 200 )

  • 主题发起人 主题发起人 wangfangzhen
  • 开始时间 开始时间
W

wangfangzhen

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个表
A ,有字段 编号Code,数量Qty 编号Code是有重复的
B ,有字段 编号Code,数量Qty 编号Code是有重复的
现在要得到A,B中有相同编号的数量差值,就是
A表有数据
1000 3
1000 2
1001 1
1001 3
B表有数据
1000 2
1000 1
1001 1
1001 2
1002 4
现在要得到数据
A-B 的交集
1000 2
1001 1

这个sql怎么写?
select A.Code sum(A.Qty-B.Qty) from A,B
where A.Code = B.Code
Group by A.Code
上面结果不对哦
 
你应该写错了吧.
A-B 的交集
1000 1
1001 2
SELECT T1.Cod, t1.qty - t2.qty AS Qty
FROM (SELECT CODE, SUM(QTY) FROM A GROUP BY CODE) T1,
(SELECT CODE, SUM(QTY) FROM A GROUP BY CODE) T2
WHERE T1.CODE = T2.CODE
这样就好了。
 
楼上是对的
不过你这个句子真的拿到查询分析器走的话是有语法错的
SELECT T1.Cod, t1.qty - t2.qty AS Qty
FROM (SELECT CODE, SUM(QTY) AS Qty FROM A GROUP BY CODE) T1,
(SELECT CODE, SUM(QTY) AS Qty FROM A GROUP BY CODE) T2
WHERE T1.CODE = T2.CODE
 
不用子查询,直接一句话能不能实现?
 
有没有人顶一下,用一句话实现的?
 
恐怕sql解决不了,还是通过程序代码解决吧。
 
select code,qty from a where a.code||a.qty in (select code||qty from b)
 
SELECT * FROM A
WHERE EXISTS(SELECT 1 FROM B WHERE Code=A.Code AND Qty=A.Qty)
 
select A.Code,A.Qty from A
left join B on B.Code=A.Code and B.Qty=A.Qty
 
不用子查询还真的难搞定这样的汇总呢
LZ你非得用单语句实现吗
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部