sql的统计疑难有关问题

sql的统计疑难问题有一张数据表如下:(0为空卡交易)商号交易金额交易日期1511710 27.92011-10-31511710 020

sql的统计疑难问题
有一张数据表如下:(0为空卡交易)
商号交易金额 交易日期
1511710 27.92011-10-3
1511710 02011-10-3
1511710 602011-10-12
1511710 02011-10-13
1511710 69.12011-10-21
1511710 2352011-10-23
1511710 1052011-10-30
1512833 1002011-10-11
1512833 37.52011-10-15
1512833 02011-10-15
1512833 1182011-10-20
1512833 95.32011-10-21
1512833 49.22011-10-25
1513545 1052011-10-2
1513545 2002011-10-5
.......
我想统计每年底各个商号的交易汇总,如下格式,应该怎么写这个语句。
商号交易笔数 交易金额 空卡笔数
1511710 7 4972
1512833 6 4001
1513545 2 3050
......
只统计交易笔数和金额没有问题,可是要区分出空卡,我就不知道怎么写了,请各位大虾帮帮忙啊。

[解决办法]

SQL code
select 商号,count(商号) 交易笔数,sum(交易金额) 交易金额,sum(decode(交易金额,0,1,0)) 空卡笔数from table_test group by 商号
[解决办法]
可以添加子查询查出空卡数量
[code=SQL]
select t.商号,count(t.商号) 商号,sum(t.交易金额) 交易金额,
(select count(商号) from tb1 where 交易金额=0 and 商号=t.商号 group by 商号) 空卡笔数
from tb1 t
group by 商号
order by 商号
[/code]
[解决办法]
SQL code
select 商号,count(商号) 交易笔数,sum(交易金额) 交易金额,sum(decode(交易金额,0,1,0)) 空卡笔数from table_test group by 商号