写错了一个地方算法是这样的:
select a.公司名,sum(a.数量1),sum(a.金额1) group by a.公司名 得出一张表
select b.公司名,sum(b.数量2),sum(b.金额2) group by b.公司名 得出另一张表
select a.公司名,sum(a.数量1),sum(a.金额1) group by a.公司名 得出一张表
select b.公司名,sum(b.数量2),sum(b.金额2) group by b.公司名 得出另一张表
解决方案 »
- 请教SQL语句:根据一个表中的条件过滤另一个表的数据。
- 谁有ORACLE FOR VISTA的请联系QQ:81194882谢谢
- oracle远程连接服务器问题,急啊!!!!!
- ORACLE到出表为建表脚本问题
- 【求助】fmx可以反编译成fmb么,或者怎样能看到代码
- 一个关于oracle端口问题
- 关于日期计算的一些特殊情况的提问
- execute immediate?
- 两USER之间可以建立触发器吗?一个简单的例子,却报错了。请帮助
- 怎么查询二个时间内(月)缺少的数据?
- oracle Enterprise console 登陆出错???急~~~~~~~~~~```
- 请教一个超级简单的SQL输出结果
FROM
(select 公司名,sum(数量1) 数量1,sum(金额1) 金额1 FROM A group by 公司名) t1
FULL JOIN --注意:Oracle9i以下版本不支持全外連接
(select 公司名,sum(数量2) 数量2,sum(金额2) 金额2 FROM B group by 公司名) t2
ON t1.公司名=t2.公司名;
海尔 2 5
海尔 5 19
小天鹅 6 12B表公司名 数量2 金额2
海尔 3 7
海尔 5 19
小天鹅 6 12
小天鹅 1 1
安吉尔 2 10==================================
现在要出这样一个报表公司名 数量1 金额1 数量2 金额2
海尔 7 24 8 25
小天鹅 6 12 7 13
安吉尔 0 0 2 10
select AA.公司名,数量1,金额1,数量2,金额2 from (select 公司名,sum(数量1) as 数量1,sum(金额1) as 金额1 from A group by 公司名) AA,(select 公司名,sum(数量2) as 数量2,sum(金额2) as 金额2 from A group by 公司名) BBwhere BB.公司名=aa.公司名
AA.公司名=BB.公司名(+) and BB.公司名 is null
BB.公司名=AA.公司名(+) and AA.公司名 is null or
AA.公司名=BB.公司名(+) and BB.公司名 is null很明顯,這個條件隻能得到通過BB.公司名=AA.公司名(+)進行右連接後,AA表中不存在的記錄行(AA.公司名 is null)或者通過AA.公司名=BB.公司名(+) 進行右連接後,BB表中不存在的記錄行(BB.公司名 is null),那些在兩表中都存在的公司名的行都會被去掉,而且結果中的公司名列是空值。對於樓主給出的那些數據,通過樓上的代碼隻能得到下面一行數據:
公司名 數量1 金額1 數量2 金額2
0 0 2 10如果不信,可以按樓主給出的表結構及數據用樓上的語句測試一下。