我有两张表,收入表(id,部门名,收入数值,发生时间),支出表(id,部门名,支出数值,发生时间)。但是发生收入,不一定有支出;有支出,不一定有收入。
我要做的是查询两表,结果字段是 时间(时间一定是收入表和支出表的总计),部门名,收入数值,支出数值.
比如是:
时间, 部门名, 收入数值, 支出数值.
2009-05-06 家电 5000 4000
2009-05-07 食品 6000
2009-05-08 家电 6000请大家帮帮忙了……
我要做的是查询两表,结果字段是 时间(时间一定是收入表和支出表的总计),部门名,收入数值,支出数值.
比如是:
时间, 部门名, 收入数值, 支出数值.
2009-05-06 家电 5000 4000
2009-05-07 食品 6000
2009-05-08 家电 6000请大家帮帮忙了……
select 时间,部门名,sum(收入) 收入数值,sum(支出) 支出数值
from(
select 发生时间 时间 ,部门名,sum(收入数值) 收入,0 支出
from a
group by 发生时间,部门名
union all
select 发生时间 时间 ,部门名,0 收入,sum(支出数值) 支出,
from a
group by 发生时间,部门名)
group by 时间,部门名
SQL> SELECT * FROM qzw1;
DATE1 PAR SR
----------- -------------------- ----------
2009-05-18 a 2
2009-05-25 b 1
SQL> SELECT * FROM qzw;
DATE1 PAR SR
----------- -------------------- ----------
2009-05-18 a 3
2009-05-19 c 1
SQL>
SQL> SELECT SUM(支出), SUM(收入), DATE1, PAR
2 FROM ((SELECT SUM(SR) 支出, 0 收入, DATE1, PAR
3 FROM QZW
4 GROUP BY DATE1, PAR) UNION
5 (SELECT 0 支出, SUM(SR) 收入, DATE1, PAR
6 FROM QZW1
7 GROUP BY DATE1, PAR))
8 GROUP BY DATE1, PAR
9 ;
SUM(支出) SUM(收入) DATE1 PAR
---------- ---------- ----------- --------------------
3 2 2009-05-18 a
1 0 2009-05-19 c
0 1 2009-05-25 b