首页 新闻 搜索 专区 学院

plsql的sql语句判断

0
悬赏园豆:20 [已解决问题] 解决于 2012-10-05 18:35

因为不会写判断语句,所以求教啊。。。

一张表有字段:编号,缴费金额,卡号

现在我需要查询的结果是:一个总人数,缴费5元人数,缴费25元人数,应收总额,实收总额

缴费金额是根据卡号来的,卡号为空的缴费25,卡号不为空的缴费5。

 

第一次提问,豆不多,希望大神们尽量帮忙,谢谢了。

狮女小熊的主页 狮女小熊 | 初学一级 | 园豆:159
提问于:2012-09-26 16:03
< >
分享
最佳答案
0

SELECT SUM(MONEY) AS TOTAL FROM
(SELECT CARD,CASE WHEN CARD IS NULL THEN 25 WHEN CARD IS NOT NULL THEN 5 END AS MONEY
FROM TABLE1)TABLE2

收获园豆:10
念念啊 | 菜鸟二级 |园豆:415 | 2012-09-26 16:56
其他回答(2)
0

卡号会重复不? 

有个比较笨的方法

select
(select COUNT(card) from dbo.Table_1 ) AS '总人数',
(select COUNT(card) from dbo.Table_1 where card is null ) as '人数1',
(select COUNT(card) from dbo.Table_1 where card is not null ) as '人数2'

收获园豆:5
二十二号同学 | 园豆:790 (小虾三级) | 2012-09-26 16:19

卡号重复没关系,我现在主要纠结的是判断卡号空值为25和卡号不空值为5的问题,最后还要把这两个值的最后结果加在一起。

支持(0) 反对(0) 狮女小熊 | 园豆:159 (初学一级) | 2012-09-26 16:26

@狮女小熊:

SELECT SUM(MONEY) AS TOTAL FROM
(SELECT CARD,CASE WHEN CARD IS NULL THEN 25 WHEN CARD IS NOT NULL THEN 5 END AS MONEY
FROM TABLE1)TABLE2

支持(0) 反对(0) 念念啊 | 园豆:415 (菜鸟二级) | 2012-09-26 16:53

@念念啊:  这样把所有的都求和了吧。 是不是还要有一个group by ... 

支持(0) 反对(0) 二十二号同学 | 园豆:790 (小虾三级) | 2012-09-26 16:56

@天生俪姿: 她说的是把2个值得最后结果加起来,如果分别求和的话就用GROUP BY

支持(0) 反对(0) 念念啊 | 园豆:415 (菜鸟二级) | 2012-09-26 16:57

@念念啊: 嗯  我觉得另一种 有两个东西。。 一个是Group by  一个是列转行。。 如果是SQLserver2005 就好办点。。 

支持(0) 反对(0) 二十二号同学 | 园豆:790 (小虾三级) | 2012-09-26 17:01
0

楼的可以实现但效率低了点

收获园豆:5
jason2013 | 园豆:1998 (小虾三级) | 2012-09-26 16:25

你有什么更好的方法么

支持(0) 反对(0) 狮女小熊 | 园豆:159 (初学一级) | 2012-09-26 16:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册