sql数据集

image.png

如 A ,B 两列数据  ,取 物业管理费、停车费,除此之外的放入其他

image.png

FineReport free_zz 发布于 2019-12-5 16:42 (编辑于 2019-12-5 16:53)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
free_zzLv6中级互助
发布于2019-12-5 17:02

select  SUM((case when a = '物业管理费' then b else 0 end ) ) 物业管理费

           ,SUM((case when a = '停车费' then b else 0 end ) ) 停车费

            ,SUM((case when a  not in( '物业管理费','停车费' ) then b else 0 end ) ) 其他

from 表

最佳回答
1
qhlLv6中级互助
发布于2019-12-5 16:48(编辑于 2019-12-5 17:02)
select  (case A when '物业管理费' then B end) as 物业管理费,
		(case A when '停车费' then B end) as 停车费,
		(case A when '其他' then B end) as 其他
from (select (case when (A<>'停车费' or A<>'物业管理费')
			then '其他'
			else A end ) as A,
			sum(B) as B
	from 表
	group by (case when (A<>'停车费' or A<>'物业管理费')
			then '其他'
			else A end ) )	


  • free_zz free_zz(提问者) 可以变成我 补充的那样么
    2019-12-05 16:53 
  • qhl qhl 回复 free_zz(提问者) 做一个行转列,这个有多个方法,有case when 或者union 或者pivot函数,我这里用个case when的,你看下
    2019-12-05 17:02 
  • qhl qhl 回复 free_zz(提问者) 就是再做一个子查询,用case when 把行转为列
    2019-12-05 17:03 
  • free_zz free_zz(提问者) 回复 qhl 谢谢你
    2019-12-05 17:04 
最佳回答
0
孙一Lv4见习互助
发布于2019-12-5 16:47(编辑于 2019-12-5 17:01)

SELECT sum(case when a='物业管理费' then b end ) as 物业管理费,

sum(case when a<>'物业管理费' and  a<>'xxx' then b end ) as 其他

FROM 表

最佳回答
0
理想三旬Lv3见习互助
发布于2019-12-5 16:49

CASE A

WHEN '1' THEN '1'

WHEN '2' THEN '2'

ELSE '其他' END


最佳回答
0
zsh331Lv8专家互助
发布于2019-12-5 16:55
select (case when (A<>'停车费' and  A<>'物业管理费')
        then '其他'
        else A end ) as A,
        sum(B) as B
from 表
group by (case when (A<>'停车费' and  A<>'物业管理费')
        then '其他'
        else A end )
  • 4关注人数
  • 506浏览人数
  • 最后回答于:2019-12-5 17:02
    请选择关闭问题的原因
    确定 取消
    返回顶部