|
我在access中开发,想做一个分组统计的报表,源数据如下
姓名 单位 帐号 金额
人1 单位1 aa 50
人1 单位1 bb 60
人1 单位1 bb 100
人1 单位2 cc 30
人1 单位3 dd 200
人2 单位4 ff 60
人2 单位4 gg 700
人2 单位5 hh 8
想得到的结果是按姓名和单位以及金额的范围,统计帐户数和金额总数,如下:
姓名 单位 50以下个数 50以下金额总计 50~100个数 50~100金额总计 100以上个数 100以上金额总计
人1 单位1 0 0 3 210 0 0
人1 单位2 1 30 0 0 0 0
人1 单位3 0 0 0 0 1 200
人2 单位4 0 0 1 60 1 700
人2 单位5 1 8 0 0 0 0
我想实现的功能在其他数据库里也可以用case when 实现,好像access里有一个iif可以实现类似功能,我写了如下的sql:
"select 姓名,单位,count(iif("金额<50",帐号,0)), sum(iif("金额<50",金额,0)),count(iif("金额>50",帐号,0)), sum(iif("金额>50",金额,0))
from 表名
group by 姓名,单位"
可是结果集中的第4,5字段的值跟2,3字段值一样,而且是不区分金额的所有记录,是不是我的写法有错?
姓名 单位 Expr1002 Expr1003 Expr1004 Expr1005
1 1 3 210 3 210
1 2 1 30 1 30
1 3 1 200 1 200
2 4 2 760 2 760
2 5 1 8 1 8
[ 本帖最后由 testyou 于 2007-9-20 12:05 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|