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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在DataSet实现类似sql语句的查询
在脱离数据库的DataSet实现类似sql语句的查询也就是select ... from tablename where ... 这样的功能:将从DataSet中查询出来的数据以行的形式绑定到dataGridView1中                       DataSet ds= new DataSet();                    ds.ReadXml("c://" + d
页面Sql语句 查询根据判断值是否存在拼接查询条件
在页面上写的话,其实可以写判断的,可是我的本来在外面的条件就够多了,就那一个字段,乱七八糟的代码就有几百行,再加上这个判断的话就要再复制一次这个几百行,就更多更乱了。后期代码维护也困难,本来这里就很麻烦了。我自己在网上查了找到了个办法用decode函数,这个是直接加到sql语句里面的。可是发现用于判断的那个值,不是null,好像是“ ”,所以会有一点问题。最后没办法,我们老大帮我写出来了:
关于预编译语句使用的注意事项
今天我在使用预编译语句发现了类似的错误。Error Descript as blew:[Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 3.经测试发现,原来时查询的字段和从结果集中取的字段顺序不一致的原因。我的相关代码如下:1、sql语句如下:sele
MS SQL锁表,查看被锁的表的sql语句
SELECT count(1) as c FROM ( SELECT OBJECT_NAME(resource_associated_entity_id, resource_database_id) as objectname FROM sys.dm_tran_locks WHERE resource_type = 'OBJECT' ) as t WHERE t.objectname = ?
公司考勤只需一条Sql语句
select E.name,CONVERT(varchar(10),WK.nowDate,111) as nowDay, min(dakaTime) as qiandaoTime, MAX(dakaTime) as qiantuiTime, case when min(dakaTime) > WK.workinTime and MIN(dakaTime)<DATEADD(HH,2,wk.wo
SQL语句查询字段中是否包含汉字
一:查询字段首位是否为汉字? SELECT * FROM 表名WHERE ascii(字段)>127 二:查询字段是否包含汉字(任意位)? select   *   from   表名 where    字段   like   '%[吖-座]%' --这个可以判断是否包含汉字而不是其它双字节字符 ----[吖-座]是中文字符集第一个到最后一个的范围,虽然匹配准确,但是
如何编写高效的SQL查询语句
概述        操作数据库时,我们需要写相应的SQL语句,当然,如果你是使用
谈谈数据库更新(Update语句)查询
谈谈数据库更新(Update语句)查询今天有人在群上问了关于数据库更新的问题,在此,我将数据库更新的问题给总结一下说白了,数据库更新就一种方法Update,其标准格式:Update 表名 set 字段=值 where 条件不过根据数据的来源不同,还是有所区别的1.从外部输入这种比较简单例:update tb set UserName="XXXXX" where UserID="aasdd"
查看数据库死锁SQL语句
最近敲代码,突然发现数据库访问特别慢,而且尤其是访问到某一个特定的数据库的时候,特别慢,这种情况下就要仔细检查一下自己的代码咯,可能是自己的sql语句导致了数据库访问过慢,下面是如何查找出来到底是哪一个sql语句导致数据库访问过慢! 我用的数据库是SqlServersp_lock select * from master.dbo.sysdatabases DBCC INPUTBUFFER(71)
一条关于评论查询并且用户是否点赞的SQL语句
有一个用户表,一个评论表,还有一个点赞表。 现在需求是查询前十条是按点赞数排序的,后面20条按发表时间排序,然后查询评论内容,以及用户的部分信息,以及当前这个用户是否对该评论点赞了。**like_comment(点赞表)** uid int ctime datetime events_id int **user(用户表)** uid