`

复杂的sql

阅读更多
<select id="queryProducingPlanData" resultType="hashmap">
		SELECT T3.NAME AS PROJECT_NAME,
		T0.DOC_ITEMATTR2 DOC_ITEMATTR2,
		T0.ENG_SECTION,
		T0.TOTAL,
		T0.TOTAL_WEIGHT,
		NVL(T2.FINISH_NUM,0) AS FINISH_NUM,
		(NVL(T2.FINISH_NUM,0) - NVL(T1.STOCK_NUM,0) - NVL(T1.SEND_NUM,0)) as NO_TAG_NUM,
		NVL(T1.STOCK_NUM,0) AS STOCK_NUM,
		NVL(T1.SEND_NUM,0) AS SEND_NUM,
		NVL(T1.STOCK_WEIGHT,0) AS STOCK_WEIGHT,
		T0.PROJECT_ID
		FROM (SELECT DI.PROJECT_ID,
		DI.ENG_SECTION, MAX(DI.DOC_ITEMATTR2) DOC_ITEMATTR2,
		SUM(DI.UNIT_QTY) AS TOTAL, SUM(DI.WEIGHT*DI.UNIT_QTY) AS TOTAL_WEIGHT
		FROM DN_DOCUMENT_ITEMS DI
		INNER JOIN
		DN_DOCUMENT D
		ON D.DOC_NUM = DI.DOC_NUM
		AND D.DOC_SUBNDX = DI.DOC_SUBNDX
		WHERE D.CLIENT_ID = #{clientId,jdbcType=VARCHAR}
		AND D.LOCKED = 'Y'
		AND D.TYPECODE = 'RQ08'
		<if test="subType !=null and subType != ''">
			AND DI.SUB_TYPECODE = #{subType,jdbcType=VARCHAR}
		</if>
		<if test="projectId !=null and projectId != ''">
			AND DI.PROJECT_ID = #{projectId,jdbcType=DECIMAL}
		</if>
		<if test="engSection !=null and engSection != ''">
			AND DI.ENG_SECTION like '%'||#{engSection,jdbcType=VARCHAR}||'%'
		</if>
		GROUP BY DI.PROJECT_ID, DI.ENG_SECTION) T0
		LEFT JOIN (SELECT PP.PROJECT_ID,
		P.ATTR3,
		SUM(CASE WHEN P.STATUS_CODE
		IN('1010','1020') THEN P.WEIGHT ELSE 0 END) AS STOCK_WEIGHT,
		SUM(CASE WHEN P.STATUS_CODE IN('1010','1020') THEN 1 ELSE
		0 END) AS STOCK_NUM,
		SUM(CASE WHEN P.STATUS_CODE IN('1051','1052','1070','1261') THEN 1 ELSE 0 END) AS SEND_NUM
		FROM DN_PRODUCT
		P
		LEFT JOIN DN_PROJECT_PRODUCT PP
		ON P.ID = PP.PRODUCT_ID
		WHERE P.CLIENT_ID= #{clientId,jdbcType=VARCHAR}
		<if test="subType !=null and subType != ''">
			AND P.SUB_TYPECODE = #{subType,jdbcType=VARCHAR}
		</if>
		<if test="projectId !=null and projectId != ''">
			AND PP.PROJECT_ID = #{projectId,jdbcType=DECIMAL}
		</if>
		<if test="engSection !=null and engSection != ''">
			AND P.ATTR3 like '%'||#{engSection,jdbcType=VARCHAR}||'%'  
		</if>
		GROUP BY PP.PROJECT_ID, P.ATTR3) T1 ON T0.PROJECT_ID = T1.PROJECT_ID AND T0.ENG_SECTION=T1.ATTR3
		LEFT JOIN (SELECT
		PR.PROJECT_ID, PR.ENG_SECTION, COUNT(1) FINISH_NUM
		FROM DN_PRODUCT_REQUEST PR LEFT JOIN DN_PRODUCT P ON PR.PRODUCT_ID =
		P.ID
		WHERE PR.CLIENT_ID = #{clientId,jdbcType=VARCHAR}
		AND PR.REQ_TYPECODE = 'RQ11'
		AND PR.STATUS_CODE in('1010','1020')
		<if test="subType !=null and subType != ''">
			AND P.SUB_TYPECODE = #{subType,jdbcType=VARCHAR}
		</if>
		<if test="projectId !=null and projectId != ''">
			AND PR.PROJECT_ID = #{projectId,jdbcType=DECIMAL}
		</if>
		<if test="engSection !=null and engSection != ''">
			AND PR.ENG_SECTION like '%'||#{engSection,jdbcType=VARCHAR}||'%'
		</if>
		GROUP BY PR.PROJECT_ID, PR.ENG_SECTION) T2 ON T0.PROJECT_ID = T2.PROJECT_ID AND T0.ENG_SECTION=T2.ENG_SECTION
		LEFT JOIN
		DN_PROJECT T3 ON T0.PROJECT_ID = T3.ID ORDER BY PROJECT_NAME,ENG_SECTION
	</select>
分享到:
评论

相关推荐

    SQL复杂SQL语句

    根据给定的信息,我们可以分析并总结出以下关于“SQL复杂SQL语句”的知识点: ### SQL复杂查询概述 在SQL中,复杂查询通常涉及到多个表之间的连接、子查询、聚合函数等高级特性。这类查询能够帮助我们从数据集中...

    jsqlparser解析复杂sql

    jsqlparser解析复杂sql 获取where条件字段 select字段 表名table 查询join 查询 group by 查询order by 子查询 判断是否为多级子查询

    oracle数据库复杂sql语句

    ### Oracle数据库中的复杂SQL语句解析 在Oracle数据库中,复杂的SQL语句是处理大量数据、执行高级查询和实现各种业务需求的关键技术之一。本文将根据提供的内容介绍几个典型的复杂SQL应用场景及其具体实现方法。 #...

    SQLServer中复杂sql语句查询

    在SQL Server中,处理复杂SQL语句查询是数据库管理员和开发者的必备技能。这涉及到多个方面的知识,包括但不限于多表联接、索引优化、触发器应用和存储过程的编写。下面将对这些主题进行详细阐述。 首先,**多表...

    sql.rar_dao复杂SQL

    标题中的"sql.rar_dao复杂SQL"提示我们这个压缩包主要包含的是关于使用DAO(Data Access Objects)执行复杂SQL操作的VC++源代码。DAO是一种常见的面向对象编程中用于访问数据库的技术,它创建了一个对象的接口,使得...

    复杂SQL语句

    描述复杂SQL语句的文档,是有关java的学习文档文档文档是有关java的学习文档文档文档

    sql复杂查询例子大全

    以下是一些常见的复杂SQL查询示例,旨在帮助你理解和掌握其核心概念。 1. **联接查询**: - 内连接(INNER JOIN):返回两个表中匹配的行。 ```sql SELECT * FROM table1 INNER JOIN table2 ON table1.id = ...

    复杂sql查询语句

    ### 复杂SQL查询语句详解 #### 一、知识点概览 在本文档中,我们将探讨复杂的SQL查询语句,这些查询语句通常用于处理更复杂的数据需求和业务场景。文档通过具体的例子来讲解如何构造复杂的SQL查询,涵盖了子查询、...

    复杂sql说明大全 复杂sql查询教程

    【SQL复杂查询详解】 SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。在复杂的查询中,SQL的威力得以充分体现,它能处理多种复杂的查询情况,如联接查询、嵌套查询、计算查询等。 1. **...

    ibatis企业开发报表前调试(日志,复杂sql动态拼接)

    本篇将详细介绍如何利用日志来调试Ibatis中的复杂SQL动态拼接。 首先,了解Ibatis的日志系统是关键。Ibatis默认集成了几种常见的日志实现,如Log4j、Logback和Java内置的日志框架。在项目中,我们需要配置相应的...

    基于复杂SQL查询的有效审计PPT学习教案.pptx

    【基于复杂SQL查询的有效审计】 审计在数据库管理中扮演着至关重要的角色,特别是在确保数据库安全性、合规性和审计追踪方面。SQL(结构化查询语言)是访问和管理数据库的标准语言,而复杂SQL查询则可能涉及多表...

    常用复杂sql语句

    根据提供的文件信息,我们可以归纳出几个重要的SQL知识点,这些知识点主要围绕着复杂的SQL查询操作,包括子查询、分组查询、以及多表关联等高级特性。下面将详细展开这些知识点。 ### 一、子查询与分组查询 #### 1...

    SQL语句集锦.rar

    工作中常用的SQL + 超复杂SQL 交叉连接查询corss.txt 公交线路问题.txt 。。。。 充储过程--sql0.sql 分割字符串.txt 分布式查询.txt 分组排列进行更新.txt 别名.txt 动态SQL语句.txt 动态语句.txt 区分大小写.txt ...

    数据库实验二复杂SQL数据操作.doc

    数据库实验二复杂SQL数据操作.doc

    SQL复杂关联查询练习

    从给定的文件标题“SQL复杂关联查询练习”和描述“可以帮助初学者更好地了解SQL及其练习”,我们可以看出,本文档旨在通过一系列复杂的SQL查询示例,帮助初学者深入理解SQL语言,尤其是关于如何进行表之间的关联查询...

    SQL Optimizer for SQL Server 10.0.3

    3. **复杂查询优化**:对于包含多个JOIN、子查询或者窗口函数的复杂SQL语句,优化器能帮助找出最佳的执行路径,降低复杂度。 4. **索引策略**:有效的索引设计是提升查询性能的关键。SQL Optimizer可以评估现有索引...

    几十个复杂的 面试SQL语句

    这些示例展示了如何在实际应用中使用SQL解决复杂的问题,涵盖了删除重复记录、多表查询、窗口函数等多种技术。通过这些示例的学习,可以提高面试者对于SQL的理解和运用能力,为面试做更充分的准备。

    SQL 执行超长语句

    2. **数据清洗**:对于需要根据特定规则对数据进行清洗的应用场景,可能会使用到包含多个CASE WHEN语句的复杂SQL语句。 3. **报表生成**:生成复杂的报表时,往往需要从多个表中抽取数据并进行复杂的联接操作,从而...

    SQL Server 2005 格式化sql语句

    3. 在新的查询窗口中,输入或粘贴你的复杂SQL语句。这可能是一段包含多个行和复杂结构的代码。 4. 要格式化这段SQL,你可以选择以下两种方法: - 方法一:使用快捷键。按下`Ctrl + Shift + F`,系统会弹出一个...

Global site tag (gtag.js) - Google Analytics