`
还有也许
  • 浏览: 169247 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

一个SQL,几点启发

    博客分类:
  • SQL
sql 
阅读更多
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 .

分享到:
评论

相关推荐

    Powercenter Lookup Sql Override若干猜想及测试结果

    - **测试假设**: 上述测试启发了一个猜想——SELECT List中的字段顺序与端口(Port)的顺序无关。 - **测试步骤**: - 打乱自定义SQL中的字段顺序。 - 执行工作流。 **测试结果**: 工作流成功执行,验证了这一猜想的...

    \资料\(VB+SQL源码),\资料\(VB+SQL源码)

    结合VB和SQL的知识点,我们可以理解这一资料包是一个基于VB的图书管理系统,利用SQL来处理和存储数据。开发者可能使用VB的ADO.NET库(ActiveX Data Objects)或者其他数据库连接组件,如ODBC或OLE DB,来建立与SQL ...

    启发式教学法在Java课程设计中的实践与探索.pdf

    在Java课程设计中主要从以下几个方面实施启发式教学: 2.2.1 渐进式启发学生完成项目中的部分功能模块 学生掌握表2中的基础知识后,指导教师使用渐进式启发学生完成项目中的部分功能。比如,以学生信息管理系统的...

    基于PB_SQL的高校成教排课管理系统的设计与实现.pdf

    根据提供的信息,这篇文章的标题和描述都是“基于PB_SQL的高校成教排课管理系统的设计与实现”,而标签则是“SQL 数据库...通过PB/SQL的应用,可以高效地构建一个功能完备的排课管理系统,满足高校成人教育的特殊需求。

    《SQL SERVER数据库》教学实践探讨.pdf

    中职学生在学习SQL Server时普遍面临几个问题:首先,他们能够理解Transact-SQL命令的讲解,但无法独立写出具体操作的SQL语句;其次,学生虽然学完了数据库中的各类对象,但在实际应用中无法选择合适的对象来解决...

    Oracle PL SQL Programming 第五版-带书签目录超清文字版

    本书主要涵盖以下几个方面的知识点: 1. **PL/SQL基础知识**:介绍PL/SQL的基本语法,包括变量声明、常量定义、数据类型、运算符、控制结构(如IF-THEN-ELSIF、CASE、循环)以及异常处理机制。 2. **PL/SQL块结构*...

    SQL Server数据库教学方法探索.docx

    这种方法通过提供一个问题的多种解决方案,鼓励学生运用发散思维去思考问题,不仅能够巩固基础知识点,还能拓宽学生的思维视野。例如,在教授如何查询年龄在特定范围内的学生信息时,教师可以引导学生使用不同的方法...

    1204 Java 遗传算法排课java sqlserver.rar_java排课算法_排课_排课系统java_遗传算法Java

    标题中提到的“1204 Java 遗传算法排课java sqlserver.rar”是一个基于Java编程语言开发的排课系统,它采用遗传算法来优化排课过程,并将数据存储在SQL Server数据库中。SQL Server是一种关系型数据库管理系统,提供...

    对SQL Server 2005数据库程序设计课程教学模式的探讨.pdf

    SQL Server 2005是一个广泛使用的数据库管理系统,它在数据库程序设计教学中扮演着重要角色。在探讨SQL Server 2005数据库程序设计课程的教学模式时,需要考虑如何有效地将理论知识和实践技能传授给学生,以及如何...

    图书管理系统源码+数据库创建脚本

    在这个系统中,"图书管理系统源码+数据库创建脚本"提供了一个完整的解决方案,涵盖了前端用户界面和后端数据处理部分。让我们深入探讨一下这个系统的核心知识点。 首先,VC++是Microsoft开发的一种集成开发环境,常...

    Oracle调优总结

    - **Nest Loop (Cluster Join)**: 如果一个表非常小或者可以完全放入内存中,那么Nest Loop连接会非常高效。另外,当连接条件涉及聚集索引时也会采用这种连接方式。 - **Index Join**: 当连接条件能够利用到索引时,...

    英文论文--决策树分类算法

    设计决策树构建和应用的SQL原语时,考虑到了以下几点: - **通用性**:原语应作为构建模块,而不是特定算法的实现。 - **灵活性**:支持广泛的分类算法。 - **高效性**:充分利用DBMS的功能提高性能。 ##### 4.2 ...

    ASP一个动态文学网站的设计与实现(源代码+论文).rar

    在设计动态文学网站时,开发者通常会考虑以下几个关键点: 1. 数据库交互:ASP可以与数据库系统(如Access或SQL Server)集成,用于存储和检索文学作品、用户信息等数据。在这个项目中,可能会用到ADO(ActiveX ...

    Cypher查询语言

    Cypher 的设计目的是一个人类查询语言,适合于开发者和在数据库上做点对点模式(ad-hoc)查询的专业操作人员。 Cypher 的构念是基于英语单词和灵巧的图解,通过一系列不同的方法和建立于确定的实践为表达查询而激发...

    数据库系统概念(第5版 影印版 英语版)课后习题答案

    下面将从几个关键章节入手,概括并深入探讨书中涵盖的核心知识点。 ### 数据库系统概述 在第一章“Introduction”中,作者首先介绍了数据库系统在现实世界中的应用,强调了数据库系统对于管理大量数据、实现数据...

    基于Springboot的老年一站式服务平台.zip

    1. **db.sql**:这是一个SQL脚本文件,用于初始化数据库结构和可能的数据。通常在项目部署时,会用这个文件来创建表、设置初始数据,确保应用程序可以正常运行。 2. **说明文档.txt**:这个文件很可能包含了项目的...

    oracle 培训总结

    再者,**共享SQL语句**是Oracle性能优化的另一个关键方面。Oracle在内存中的共享池中存储已解析的SQL语句,以便于后续相同的SQL语句可以直接复用,无需再次解析,这显著提高了执行效率。但是,只有在SQL语句完全一致...

    PB9写的一个万年历代码

    标题中的“PB9写的一个万年历代码”指的是使用PowerBuilder 9(PB9)开发的一个具有万年历功能的程序。...同时,对于有经验的开发者来说,这也可能是一个启发灵感、学习新技巧或优化已有项目的好素材。

Global site tag (gtag.js) - Google Analytics