发布网友
共1个回答
热心网友
按照你的意思,就是说今天的收入1+收入2-(支出1+支出2),然后保留大于0的,并且显示剩余的金额是多少,是这个意思吧。
先写sum的部分,如果直接写全的话发不上来。
sum(case when 类型字段=1 or 类型字段=2 then 金额 else 0-金额 end) as jtsr
这样当类型字段为收入时,为正数,支出时为负数,二者相加就是收入-支出
后面就是 where 限定时间 group by 绑定的用户ID字段 having jtsr>0
这样就可以了,如果不是很明白,那么子查询也可以写出来
(1)把类型字段为3和4的金额变为负数
(2)根据绑定的用户ID字段求sum(金额)
(3)判断sum(金额)>0,然后显示追问大佬能写下子查询嘛?别名在where里用报错,子查询应该怎么写好难?
追答别名当然不能在where里面用,却可以用在having中的,having是先计算完sum以后再去筛选的条件,所以在having中是可以用的。