select x.swjg_dm as ZSJG_DM,
x.MC as SWJG_MC,
x.JGJC,
sum(nvl(y.YDZCX, 0)) as GKBBS,
sum(nvl(y.YDZCX, 0)) as YDZCS,
sum(nvl(y.DZCGCS, 0)) as DZCGCS,
sum(nvl(y.DZBCGCS, 0)) as DZBCGCS
from T_DM_GY_SWJG x,
(select T.SWJG_DM, T.MC, count(1) as YDZCX, 0 as DZCGCS, 0 as DZBCGCS
from T_QS_XZBBXX x, T_DM_GY_SWJG T
where T.SWBM_BJ = '0'
and T.SJSWJG_DM=(CASE WHEN ? IS NULL THEN '23200000000' ELSE ? END)
and x.zsjg_dm like T.cc || '%'
group by T.SWJG_DM, T.MC
union all
select T.SWJG_DM, T.MC, 0, count(1), 0
from T_QS_DZXX_RQ RZ, T_DM_GY_SWJG T
where RZ.DZZT_DM = '01'
AND RZ.DZLX_DM = '01'
and T.SWBM_BJ = '0'
and T.SJSWJG_DM=(CASE WHEN ? IS NULL THEN '23200000000' ELSE ? END)
and RZ.zsjg_dm like T.cc || '%'
group by T.SWJG_DM, T.MC
union all
select T.SWJG_DM, T.MC, 0, 0, count(1)
from T_QS_DZXX_RQ RZ, T_DM_GY_SWJG T
where RZ.DZZT_DM <> '01'
AND RZ.DZLX_DM = '01'
and T.SWBM_BJ = '0'
and T.SJSWJG_DM=(CASE WHEN ? IS NULL THEN '23200000000' ELSE ? END)
and RZ.zsjg_dm like T.cc || '%'
group by T.SWJG_DM, T.MC) y
where x.swjg_dm = y.swjg_dm(+)
and x.SJSWJG_DM=(CASE WHEN ? IS NULL THEN '23200000000' ELSE ? END)
and x.SWBM_BJ = '0'
group by x.swjg_dm, x.mc,x.jgjc
该SQL 是要展示如图所示的效果
税务机关 国库报表数 应对账次数 对账成功次数 对账不成功次数
1、将一个SQL的结果当做一个表,起个别名和另一个表关联
2、为了取得数量的和,创建一些空的类,起个别名,然后sum.
3、nvl 函数 NVL( string1, replace_with)
功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。
4、case when zhen 语句
5、like 的运用
很值得学习
还有一个带点技巧性
select t.zsjg_dm,to_char(t.bbssrq,'yyyy-MM-dd') bbssrq,
to_char(t.xzdate,'yyyy-MM-dd') xzdate,t.czry_dm,
( case
when rz.dzlx_dm is null
then '未对帐'
when rz.dzzt_dm ='01'
then '对帐成功'
when rz.dzzt_dm='02'
then '对帐不成功'
end ) DZJG
from T_QS_XZBBXX t, T_QS_DZXX_RQ rz
where t.zsjg_dm=rz.zsjg_dm(+)
and t.bblx=rz.bblx(+)
如果T_QS_XZBBXX 没有存在于 T_QS_DZXX_RQ的对应数据状态为“未对帐”,可以用左连接的空值来判断,而不是not exists .
分享到:
相关推荐
sql去掉最后一个字符,sql去掉最后一个字符
提高sql执行效率的几点建议提高sql执行效率的几点建议
sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql大全sql...
sql知识点大全 sql知识点大全sql知识点大全sql知识点大全
g构造sql注入点g构造sql注入点g构造sql注入点g构造sql注入点g构造sql注入点g构造sql注入点g构造sql注入点g构造sql注入点g构造sql注入点g构造sql注入点
P2_SQL的几个技术点
sql一个字段中的某几个字updatesql一个字段中的某几个字update
SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...
优化sql语句执行效率几点需要注意的事项
几个SQL 语句及其例子 几个SQL 语句及其例子
4.关于cascade使用的sql文件 删除重复行只留一行的sql文件 5.数据表操作的习题课1和2的sql文件 6.t-sql知识点和有练习题的sql文件 7.触发器 存储过程 索引 视图 知识点及sql文件 8.事务ACID理解
SQLServer中如何将一个字段的多个记录值合在一行显示
几个SQL面试题及答案.sql
SQL知识点培训讲义SQL知识点培训讲义SQL知识点培训讲义SQL知识点培训讲义SQL知识点培训讲义
昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 ...
sql server 中使用日期类型的几点心得
SQL语句教程 SQL指令 表格处理 SQL语法 无论您是一位 SQL 的新手,或是一位只是需要对 SQL 复习一下的资料仓储业界老将, 您就来对地方了。...- SQL语法: 这一页列出所有在这个教材中被提到的 SQL 语法。
ACCESS中使用SQL语句应注意的地方及几点技巧ACCESS中使用SQL语句应注意的地方及几点技巧
浅谈几个sql的日志概念浅谈几个sql的日志概念
提高SQL Server数据库安全性的几点思考.pdf