有两个表,如下:
表A:
ID ID1 NUM
10001 1001 1000
10001 1002 2000
10001 1003 3000
10002 1001 1500
10002 1002 1000
10002 1003 1000表B:
ID ID1 NUM
20001 1001 20
20001 1002 10
20001 1003 15
20002 1001 10
20002 1002 15
20002 1003 30要实现从A中查出所有ID1为1001的NUM列的和,减去B中所有ID1为1001的NUM列和
我写的SQL语句如下:
SELECT SUM(T1.NUM)-SUM(T2.NUM) FROM A T1, B T2 WHERE T1.ID1='1001' AND T2.ID2='1001'
但是查出来的结果不对。我想我的SQL语句写的可能有问题,可不知道该怎么写,请教
表A:
ID ID1 NUM
10001 1001 1000
10001 1002 2000
10001 1003 3000
10002 1001 1500
10002 1002 1000
10002 1003 1000表B:
ID ID1 NUM
20001 1001 20
20001 1002 10
20001 1003 15
20002 1001 10
20002 1002 15
20002 1003 30要实现从A中查出所有ID1为1001的NUM列的和,减去B中所有ID1为1001的NUM列和
我写的SQL语句如下:
SELECT SUM(T1.NUM)-SUM(T2.NUM) FROM A T1, B T2 WHERE T1.ID1='1001' AND T2.ID2='1001'
但是查出来的结果不对。我想我的SQL语句写的可能有问题,可不知道该怎么写,请教
解决方案 »
- sqlplus:command not found问题,知道的请进,谢谢了
- oracle9i这样的select怎么写
- sql语句查询,谢谢
- oracle 异常处理
- 讨论讨论---ORACLE为什么不让存储过程直接返回结果集,却要返回游标的方式呢?
- 急急急!怎么把blob还原成一个文件呢?
- Oracle超级用户密码丢失,我用baidu已找到解决方法,不过还是不知哪能个步骤没对
- oracle的问题!!!!急!
- oracle从文件导入数据时出现1950错误如何解决
- 请问:连接数据库时,出现ORA-12705是怎么回事?
- 菜鸟问题
- 企业版Oracle 10g安装以后,还需要配置那些参数,才能更好的运行
SELECT S1-S2 FROM (SELECT SUM(NUM) S1 FORM A WHERE ID1='1001') A1 ,(SELECT SUM(NUM) S2 FROM B WHERE ID1='1001')B1
and t1.id1='1001' and t2.id1='1001'
这个查出来的结果不对,和没有t1.id1=t2.id1的结果一个样
例如:
如果B表中没有1001这个记录,那么S2就没有。而不是想要的结果0.即:
S1 - 0 = S1。
select
(select nvl(sum(t1.num),0) from t1 where t1.id1='1001')-
(select nvl(sum(t2.num),0) from t2 where t2.id1='1001')
from dual;
SELECT S1 - S2
FROM (SELECT nvl(SUM(NUM),0) S1 FORM A WHERE ID1 = '1001') A1,
(SELECT nvl(SUM(NUM),0) S2 FROM B WHERE ID1 = '1001') B1