2 yishaonianyumeng YiShaoNianYuMeng 于 2016.03.22 15:33 提问

关于SQL语句查询求助,是否可以实现

select (case
when a.iscashvirtual = '1' then
'type1'
when a.isbillvirtual = '1' then
'type2'
else
case
when a.deposittype = '1' then
'type3'
when a.deposittype = '2' then
'type4'
when a.deposittype = '3' then
'type5'
else
'其他'
end end) savetype,

sum(b.closingbalance) sums
From eee a,bbb b

        类似上面的SQL,查询的savetype会有5种类型,需要这5种数据都有,但是数据库中查出来的可能没有该类型。那么不存在的类型就加上该类型且sums的值设为0。现在要求用sql语句实现,我没办法,这个可以通过sql解决吗?如果有求解决方法

1个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.03.22 15:51
 建一张类型表,里面初始化这5中类型
select 类型,ifnull(sums,0) from 类型表 left jion (
select savetype,sum(b.closingbalance) sums from (
select case
when a.iscashvirtual = '1' then
'type1'
when a.isbillvirtual = '1' then
'type2'
else
case
when a.deposittype = '1' then
'type3'
when a.deposittype = '2' then
'type4'
when a.deposittype = '3' then
'type5'
else
'其他'
end end savetype,b.closingbalance
From eee a,bbb b) t group by savetype
) t on 类型表.类型=savetype
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!