<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中,复杂查询通常涉及到多个表之间的连接、子查询、聚合函数等高级特性。这类查询能够帮助我们从数据集中...
jsqlparser解析复杂sql 获取where条件字段 select字段 表名table 查询join 查询 group by 查询order by 子查询 判断是否为多级子查询
### Oracle数据库中的复杂SQL语句解析 在Oracle数据库中,复杂的SQL语句是处理大量数据、执行高级查询和实现各种业务需求的关键技术之一。本文将根据提供的内容介绍几个典型的复杂SQL应用场景及其具体实现方法。 #...
在SQL Server中,处理复杂SQL语句查询是数据库管理员和开发者的必备技能。这涉及到多个方面的知识,包括但不限于多表联接、索引优化、触发器应用和存储过程的编写。下面将对这些主题进行详细阐述。 首先,**多表...
标题中的"sql.rar_dao复杂SQL"提示我们这个压缩包主要包含的是关于使用DAO(Data Access Objects)执行复杂SQL操作的VC++源代码。DAO是一种常见的面向对象编程中用于访问数据库的技术,它创建了一个对象的接口,使得...
描述复杂SQL语句的文档,是有关java的学习文档文档文档是有关java的学习文档文档文档
内容概要:本文档详细介绍了复杂SQL语言的基础和进阶内容,涵盖基础SQL知识的回顾、复杂查询的构建方法、窗口函数的应用等。具体内容包括:数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和数据...
以下是一些常见的复杂SQL查询示例,旨在帮助你理解和掌握其核心概念。 1. **联接查询**: - 内连接(INNER JOIN):返回两个表中匹配的行。 ```sql SELECT * FROM table1 INNER JOIN table2 ON table1.id = ...
### 复杂SQL查询语句详解 #### 一、知识点概览 在本文档中,我们将探讨复杂的SQL查询语句,这些查询语句通常用于处理更复杂的数据需求和业务场景。文档通过具体的例子来讲解如何构造复杂的SQL查询,涵盖了子查询、...
【SQL复杂查询详解】 SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。在复杂的查询中,SQL的威力得以充分体现,它能处理多种复杂的查询情况,如联接查询、嵌套查询、计算查询等。 1. **...
本篇将详细介绍如何利用日志来调试Ibatis中的复杂SQL动态拼接。 首先,了解Ibatis的日志系统是关键。Ibatis默认集成了几种常见的日志实现,如Log4j、Logback和Java内置的日志框架。在项目中,我们需要配置相应的...
【基于复杂SQL查询的有效审计】 审计在数据库管理中扮演着至关重要的角色,特别是在确保数据库安全性、合规性和审计追踪方面。SQL(结构化查询语言)是访问和管理数据库的标准语言,而复杂SQL查询则可能涉及多表...
根据提供的文件信息,我们可以归纳出几个重要的SQL知识点,这些知识点主要围绕着复杂的SQL查询操作,包括子查询、分组查询、以及多表关联等高级特性。下面将详细展开这些知识点。 ### 一、子查询与分组查询 #### 1...
工作中常用的SQL + 超复杂SQL 交叉连接查询corss.txt 公交线路问题.txt 。。。。 充储过程--sql0.sql 分割字符串.txt 分布式查询.txt 分组排列进行更新.txt 别名.txt 动态SQL语句.txt 动态语句.txt 区分大小写.txt ...
数据库实验二复杂SQL数据操作.doc
从给定的文件标题“SQL复杂关联查询练习”和描述“可以帮助初学者更好地了解SQL及其练习”,我们可以看出,本文档旨在通过一系列复杂的SQL查询示例,帮助初学者深入理解SQL语言,尤其是关于如何进行表之间的关联查询...
然而,对于复杂的SQL语句处理,有时需要编写自定义的解析工具,这就是JSqlParser的用武之地。JSqlParser是一个用Java编写的开源项目,它提供了一个强大的SQL语法解释器,能够帮助开发者解析、理解和操作SQL语句。 ...
3. **复杂查询优化**:对于包含多个JOIN、子查询或者窗口函数的复杂SQL语句,优化器能帮助找出最佳的执行路径,降低复杂度。 4. **索引策略**:有效的索引设计是提升查询性能的关键。SQL Optimizer可以评估现有索引...
这些示例展示了如何在实际应用中使用SQL解决复杂的问题,涵盖了删除重复记录、多表查询、窗口函数等多种技术。通过这些示例的学习,可以提高面试者对于SQL的理解和运用能力,为面试做更充分的准备。