免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2016 | 回复: 9
打印 上一主题 下一主题

请教sql语句 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-09 10:39 |只看该作者 |倒序浏览
有一张结构如下:
机构码 帐号 金额
帐号是不能重复的,我想统计成如下形式:
机构码 帐号数 金额1 金额2  金额3
金额1是0-100之间的.金额2是100-1000之间的.金额3是大于1000的.想只用一条语句实现,怎么写?

论坛徽章:
0
2 [报告]
发表于 2005-12-09 12:33 |只看该作者
铁钉一句?

God bless U.

论坛徽章:
0
3 [报告]
发表于 2005-12-09 13:22 |只看该作者
select jgm,count(*),
sum(case when je>=0 and  je <100
then
    1
else
0
end
) je1,
sum(case when je>=100 and  je <1000
then
    1
else
0
end
) je2 ,
sum(case when je>=1000
then
    1
else
0
end
) je3
from tab  
where ...
group by 1

论坛徽章:
0
4 [报告]
发表于 2005-12-09 14:05 |只看该作者
真NB,我试试.过会上来感谢你!

论坛徽章:
0
5 [报告]
发表于 2005-12-09 14:14 |只看该作者
不好意思.我试过了.可惜结果不是我想要的,我的意思表达错了.而且你取出的没有金额合计,全是帐户合计数.
结果应该是这样的:机构码 帐号数1 金额1 帐号数2 金额2  帐号数3 金额3
金额1-3是不同机构的金额合计数.帐号数要与金额相对应.不是汇总的.请再给个语句好吗?

[ 本帖最后由 unixzyy 于 2005-12-9 14:38 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2005-12-09 14:33 |只看该作者
select  jgm,
sum( case when je>=0 and  je <100
then
    1
else
0
end
) cnt1,
sum (  case when je>=0 and  je <100
then
   je
else
0
end
) je1,

sum( case when je>=100 and  je <1000
then
    1
else
0
end
) cnt2,
sum (  case when je>=100 and  je <1000
then
   je
else
0
end
) je2,

sum( case when je>=1000
then
    1
else
0
end
) cnt3,
sum (  case when je>=1000
then
   je
else
0
end
) je3

from tab
group by 1

论坛徽章:
0
7 [报告]
发表于 2005-12-09 14:54 |只看该作者
十分感谢楼上的哥们.看来我是白活了.对了,请问网上哪儿有这方面的资料.我以前从来未用过CASE在informix 的SQL中.帮忙到底呀.

论坛徽章:
0
8 [报告]
发表于 2005-12-09 14:56 |只看该作者
sum( case when je>=0 and  je <100
then
    1
else
0
end
) cnt1,
sum (  case when je>=0 and  je <100
then
   je
else
0
end
) je1,
为什么前面的sum是统计的户数,面后面的sum是统计的金额?能给我解释一下吗?

[ 本帖最后由 unixzyy 于 2005-12-9 15:02 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2005-12-09 15:05 |只看该作者
case when 最初 我也是网上看来的
搜索一下肯定不少。
这个语句其实包含了编程的功能在里面了,又能实现一条语句的要求。
因为count(*) 里不能做 case 只能用sum了 ,满足条件算一个。

论坛徽章:
0
10 [报告]
发表于 2005-12-12 09:49 |只看该作者
再次感谢.我明白了!网上人朋友真好!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP