关于条件求和

eminena 2014-06-05 05:44:28
表: SFD_2 ( ZYH, SFLB, SJFY)

要求输出:

按 ZYH 分组,在同一行里分不同的 SFLB 求 SJFY 的和

语句:

select ZYH ,sum(SJFY),sum(case when SFLB='700001' then SJFY else 0 end ) ,
sum(SJFY),sum(case when SFLB='700002' then SJFY else 0 end )
from SFD_2
where ZYH>='95001'
group by ZYH

结果 ,类似 sum(case when SFLB='700001' then SJFY else 0 end ) 没有求和,永远为 0
应该怎样实现?

...全文
272 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

 sum(case when SFLB='700001' then convert(int,SJFY) else 0 end ) 
转int求和
卖水果的net 版主 2014-06-06
  • 打赏
  • 举报
回复
zyh 的数据类型是 字符型的吧?

-- 这两个条件的原因
SFLB='700001' 
zyh>='95001'

习惯性蹭分 2014-06-05
  • 打赏
  • 举报
回复
目测语句没问题 select * from SFD_2 where zyh>='95001' and sflb in('700001','700002') 这个看有木有数据出来
--小F-- 2014-06-05
  • 打赏
  • 举报
回复
你这个的写法应该是没什么问题的 要不然给点数据来我们帮你写写。
chen357313771 2014-06-05
  • 打赏
  • 举报
回复
select ZYH ,sum(case when SFLB='700001' then SJFY else 0 end ) ,sum(case when SFLB='700002' then SJFY else 0 end ) from SFD_2 where ZYH>='95001' group by ZYH 这样不行吗
eminena 2014-06-05
  • 打赏
  • 举报
回复
引用 1 楼 chen357313771 的回复:
直接写0不就完了?
是说: 类似 sum(case when SFLB='700001' then SJFY else 0 end ) 没有实现求和作用,,应该怎样写,才能按不同的 SFLB 来求和
chen357313771 2014-06-05
  • 打赏
  • 举报
回复
直接写0不就完了?

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧