CASE 与SUM 的使用 SQL 语句

现在要根据case中条件的不同进行进行sumSelectCASEWHENYF_ZYFYMX.YFDW=YK_TYPK.BFDWTHENSUM(YK_YPCD.JHJG/Y... 现在要根据case中条件的不同进行进行sum
Select CASE
WHEN YF_ZYFYMX.YFDW=YK_TYPK.BFDW THEN SUM(YK_YPCD.JHJG/YK_TYPK.YFBZ*YF_ZYFYMX.YPSL)
WHEN YF_ZYFYMX.YFDW<>YK_TYPK.BFDW THEN SUM(YK_YPCD.JHJG*YF_ZYFYMX.YPSL)
END AS JHJE
From YF_ZYFYMX , YK_YPCD,YK_TYPK Where
YF_ZYFYMX.YFSB =3 And YF_ZYFYMX.YPXH =YK_YPCD.YPXH
And YF_ZYFYMX.YPCD =YK_YPCD.YPCD And YF_ZYFYMX.JFRQ > '2011-4-30 23:59:59.000'
And YF_ZYFYMX.JFRQ <= '2011-5-31 23:59:59.000' And YF_ZYFYMX.YFSB =3;
但是这样写却无法执行,是错在哪里?该怎么修正?
这条SQL语句就是根据case中条件的不同,进行sum求和,但是求和出来的结果在同一列。
Select sum ( YF_ZYFYMX.YPSL *YK_YPCD.JHJG ) From YF_ZYFYMX ,
YK_YPCD Where YF_ZYFYMX.YFSB =3 And YF_ZYFYMX.YPXH =YK_YPCD.YPXH
And YF_ZYFYMX.YPCD =YK_YPCD.YPCD And YF_ZYFYMX.JFRQ > '2011-4-30 23:59:59.000'
And YF_ZYFYMX.JFRQ <= '2011-5-31 23:59:59.000' And YF_ZYFYMX.YFSB =3 ;
这是原来错误结果的语句,就是YK_YPCD.JHJG中这里还要细分,要在这里进行判断进行case,但是出来的结果只能有一个数字,用group by的话就不是所有的求和了。

已经自己弄好了:
Select sum ( YF_ZYFYMX.YPSL *(CASE
WHEN YK_TYPK.YPDW<>YK_TYPK.BFDW THEN YK_YPCD.JHJG/YK_TYPK.ZXBZ
WHEN YK_TYPK.YPDW=YK_TYPK.BFDW THEN YK_YPCD.JHJG
END ))
From YF_ZYFYMX , YK_YPCD,YK_TYPK
Where YF_ZYFYMX.YFSB =3 And YF_ZYFYMX.YPXH =YK_YPCD.YPXH
And YK_TYPK.YPXH=YF_ZYFYMX.YPXH AND YK_TYPK.YPXH=YK_YPCD.YPXH
And YF_ZYFYMX.YPCD =YK_YPCD.YPCD And YF_ZYFYMX.JFRQ > '2011-4-30 23:59:59.000'
And YF_ZYFYMX.JFRQ <= '2011-5-31 23:59:59.000' And YF_ZYFYMX.YFSB =3 ;
展开
 我来答
apu510064
2011-06-08 · TA获得超过964个赞
知道小有建树答主
回答量:1634
采纳率:55%
帮助的人:953万
展开全部
没有group by,你的条件用到的字段都需要在Group By里出现
select sum(case 1 then result1 when 2 then result2 end) as result from table group by ?
xiuduo83
2011-06-08 · TA获得超过181个赞
知道答主
回答量:463
采纳率:0%
帮助的人:318万
展开全部
select sum(a)as nums into #temp from table1 where b=3 例如,该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiao_3540
2011-06-08 · TA获得超过202个赞
知道小有建树答主
回答量:194
采纳率:20%
帮助的人:89.9万
展开全部
你想按什么分组啊?没有group by 你怎么能弄出SUM?
你也可以不同列啊
select
case when 条件1 then 结果1 end as 列1,
case when 条件2 then 结果2 end as 列2......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
supergty
2011-06-08 · 超过24用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:0
展开全部
说不清楚为什么,但是我认为应该先写case语句,然后把结果当成子查询再进行sum
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式