日期:2014-05-18  浏览次数:20373 次

新手求一条SQL语句
表1字段如下

表1ID
应付款
日期

表2字段如下

表2ID
付款金额
表1ID

如表1有以下数据
表1ID   应付款   日期
1     500   2011-2-1
2     600 2011-2-2
3     800 2011-3-20
4      600   2011-3-21
5    600 2011-3-22
6    500 2011-4-1
7    400 2011-4-3
8      300   2011-5-1


如表2有以下数据
表2ID 付款金额 表1ID
1 100 1
2 50 1
3 60 1
4 500 2
5 800 3
6 500 4
7 50 4
8     100     6


得出的结果 以月份来统计
年  月   应付款   已付款    欠款
2011 2   1100     710     390
2011 3   2000     1350     650
2011 4   900      100     800  
2011 5 300 0 300




------解决方案--------------------
SQL code
select year(a.日期)年,month(a.日期)月,sum(a.应付款) as 应付款,sum(b.付款金额) as 已付款,sum(a.应付款)-sum(b.付款金额) as 欠款
from 表1 a left join 表2 b on a.表1ID=b.表1ID
group by year(a.日期),month(a.日期)