oracle产销存的写法
with TEMP as
(select sum(MMT.TRANSACTION_QUANTITY) QTY_QC, MMT.INVENTORY_ITEM_ID --,CAH.Legal_Entity_Id,CAH.COST_GROUP_ID,CAH.COST_TYPE_ID
from MTL_MATERIAL_TRANSACTIONS MMT, CST_AE_HEADERS CAH --,CST_AE_LINES CAL
where MMT.TRANSACTION_QUANTITY <> 0
AND MMT.TRANSACTION_TYPE_ID NOT IN (2, 52, 10008)
AND MMT.INVENTORY_ITEM_ID = nvl(:P_ITEM_ID, mmt.inventory_item_id) --100528
AND CAH.ACCOUNTING_DATE = MMT.TRANSACTION_DATE
AND CAH.accounting_event_id = MMT.TRANSACTION_ID
AND CAH.ACCOUNTING_DATE > to_date('2013-04-27', 'YYYY-MM-DD') --oracle开账日期
AND CAH.ACCOUNTING_DATE < to_date(:P_START_DATE, 'YYYY-MM-DD')
AND CAH.ACCT_EVENT_SOURCE_TABLE = 'MMT'
AND CAH.COST_GROUP_ID = :P_COST_GROUP
AND CAH.LEGAL_ENTITY_ID = :P_LEGAL_ENTITY
GROUP BY MMT.INVENTORY_ITEM_ID)
select CCG.COST_GROUP COST_GROUP,
CCG.DESCRIPTION COST_DESCRIPTION,
:P_START_DATE START_DATE, ------起始日期 ///////////时间参数
:P_END_DATE END_DATE, ------截止日期 ////////////时间参数
GCC.SEGMENT3,
GL_FLEXFIELDS_PKG.GET_DESCRIPTION_SQL(GCC.CHART_OF_ACCOUNTS_ID,
3,
GCC.SEGMENT3) SEGMENT3_DESC,
MSI.SEGMENT1 INVENTORY_ITEM_NO, -----物料编码
MSI.DESCRIPTION INVENTORY_ITEM_DESCRIPTION, -----物料描述
MSI.ATTRIBUTE12 PRIDUCTLINE, --产品线
NULL ACC_DESCRIPTION, -----帐户类别
A.QTY_QC, --期初数量
DECODE(A.QTY_QC, 0, 0, ROUND(B.ACCOUNTED_QC / A.QTY_QC, 6)) UP_QC, -----期初单位成本
B.ACCOUNTED_QC, --期初金额
C.QTY_ENTER,
DECODE(C.QTY_ENTER, 0, 0, ROUND(D.ACCOUNTED_DR / C.QTY_ENTER, 6)) UP_DR, -----本期入库单位成本
D.ACCOUNTED_DR,
C.QTY_OUT,
DECODE(C.QTY_OUT, 0, 0, ROUND(D.ACCOUNTED_CR / C.QTY_OUT, 6)) UP_CR, -----本期出库单位成本
D.ACCOUNTED_CR,
A.QTY_QC - C.QTY_ENTER - C.QTY_OUT QTY_QM, -----期末结存数量
DECODE((A.QTY_QC + C.QTY_ENTER - C.QTY_OUT),
0,
0,
ROUND((B.ACCOUNTED_QC + D.ACCOUNTED_DR - D.ACCOUNTED_CR) /
(A.QTY_QC + C.QTY_ENTER - C.QTY_OUT),
6)) UP_QM, -----期末结存单位成本
B.ACCOUNTED_QC + D.ACCOUNTED_DR - D.ACCOUNTED_CR ACCOUNTED_QM, -----期末结存成本金额
GL_FLEXFIELDS_PKG.GET_CONCAT_DESCRIPTION(GCC.CHART_OF_ACCOUNTS_ID,
GCC.CODE_COMBINATION_ID) ACCOUNT_DESC -----会计科目组合描述
from TEMP A,
--期初数量
--期初金额
(SELECT sum(nvl(cal.accounted_dr, 0) - nvl(cal.accounted_cr, 0)) ACCOUNTED_QC,
mmt.inventory_item_id,
CAL.CODE_COMBINATION_ID
FROM CST_AE_HEADERS CAH,
MTL_MATERIAL_TRANSACTIONS MMT,
CST_AE_LINES CAL,
GL_CODE_COMBINATIONS GCC,
FND_FLEX_VALUES FFVS,
CST_COST_GROUPS CCG,
TEMP T
where cah.ae_header_id = cal.ae_header_id
and CAL.DESCRIPTION IN ('库存估价', 'Inv valuation') -----------
AND CAL.SOURCE_TABLE = 'MMT'
and MMT.TRANSACTION_TYPE_ID NOT IN (2, 52, 10008)
AND CAH.ACCOUNTING_DATE = MMT.TRANSACTION_DATE
AND CAH.accounting_event_id = MMT.TRANSACTION_ID
and CAH.ACCOUNTING_DATE > to_date('2013-04-27', 'YYYY-MM-DD') --oracle开账日期
AND CAH.ACCOUNTING_DATE < to_date(:P_START_DATE, 'YYYY-MM-DD')
AND CAH.ACCT_EVENT_SOURCE_TABLE = 'MMT'
AND CAH.COST_GROUP_ID = :P_COST_GROUP
AND CAH.LEGAL_ENTITY_ID = :P_LEGAL_ENTITY
AND FFVS.ATTRIBUTE2 = '存货核算'
AND FFVS.VALUE_CATEGORY = 'GL_MEG_ACCOUNT'
AND GCC.SEGMENT3 = FFVS.FLEX_VALUE
AND GCC.CODE_COMBINATION_ID = CAL.CODE_COMBINATION_ID
and CCG.COST_GROUP_ID = CAH.COST_GROUP_ID
AND T.INVENTORY_ITEM_ID = MMT.INVENTORY_ITEM_ID
group by mmt.inventory_item_id, CAL.CODE_COMBINATION_ID) B,
--本期入库数量、本期出库数量
(select sum(case
when MMT.TRANSACTION_QUANTITY > 0 then
MMT.TRANSACTION_QUANTITY
else
0
end) QTY_ENTER,
sum(case
when MMT.TRANSACTION_QUANTITY < 0 then
-MMT.TRANSACTION_QUANTITY
else
0
end) QTY_OUT,
MMT.INVENTORY_ITEM_ID --,CAH.Legal_Entity_Id,CAH.COST_GROUP_ID,CAH.COST_TYPE_ID
from MTL_MATERIAL_TRANSACTIONS MMT, CST_AE_HEADERS CAH, TEMP T --,
-- CST_AE_LINES CAL
where MMT.TRANSACTION_QUANTITY <> 0
AND MMT.TRANSACTION_TYPE_ID NOT IN (2, 52, 10008)
--AND MMT.INVENTORY_ITEM_ID=100528
AND CAH.ACCOUNTING_DATE = MMT.TRANSACTION_DATE
AND CAH.accounting_event_id = MMT.TRANSACTION_ID
AND CAH.ACCOUNTING_DATE >= to_date(:P_START_DATE, 'YYYY-MM-DD') --oracle开账日期
AND CAH.ACCOUNTING_DATE < to_date(:P_END_DATE, 'YYYY-MM-DD') + 1
AND CAH.ACCT_EVENT_SOURCE_TABLE = 'MMT'
AND CAH.COST_GROUP_ID = :P_COST_GROUP
AND CAH.LEGAL_ENTITY_ID = :P_LEGAL_ENTITY
AND T.INVENTORY_ITEM_ID = MMT.INVENTORY_ITEM_ID
GROUP BY MMT.INVENTORY_ITEM_ID) C,
--本期入库金额、本期入库金额
(SELECT sum(nvl(cal.accounted_dr, 0)) ACCOUNTED_DR,
SUM(nvl(cal.accounted_cr, 0)) ACCOUNTED_CR,
mmt.inventory_item_id
FROM CST_AE_HEADERS CAH,
MTL_MATERIAL_TRANSACTIONS MMT,
CST_AE_LINES CAL,
TEMP T
where CAL.DESCRIPTION IN ('库存估价', 'Inv valuation') -----------
AND CAL.SOURCE_TABLE = 'MMT'
AND cah.ae_header_id = cal.ae_header_id
and MMT.TRANSACTION_TYPE_ID NOT IN (2, 52, 10008)
--AND MMT.INVENTORY_ITEM_ID=100528
AND CAH.ACCOUNTING_DATE = MMT.TRANSACTION_DATE
AND CAH.accounting_event_id = MMT.TRANSACTION_ID
and CAH.ACCOUNTING_DATE >= to_date(:P_START_DATE, 'YYYY-MM-DD') --oracle开账日期
AND CAH.ACCOUNTING_DATE < to_date(:P_END_DATE, 'YYYY-MM-DD') + 1
AND CAH.ACCT_EVENT_SOURCE_TABLE = 'MMT'
AND CAH.COST_GROUP_ID = :P_COST_GROUP
AND CAH.LEGAL_ENTITY_ID = :P_LEGAL_ENTITY
AND T.INVENTORY_ITEM_ID = MMT.INVENTORY_ITEM_ID
group by mmt.inventory_item_id) D,
mtl_system_items_b MSI,
CST_COST_GROUPS CCG,
GL_CODE_COMBINATIONS GCC
WHERE CCG.COST_GROUP_ID = :P_COST_GROUP
and CCG.LEGAL_ENTITY = :P_LEGAL_ENTITY
AND A.inventory_item_id = B.inventory_item_id(+)
AND A.inventory_item_id = C.inventory_item_id(+)
AND A.inventory_item_id = D.inventory_item_id(+)
AND A.inventory_item_id = MSI.inventory_item_id
AND MSI.ORGANIZATION_ID = 82
and B.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
AND (A.QTY_QC <> 0 OR B.ACCOUNTED_QC <> 0)
oracle产销存的写法的更多相关文章
- jdbc应用程序连接Oracle rac的URL写法:
1.应用程序连接Oracle rac的URL写法: #Oracle(AMS) jdbc.driverClassName=oracle.jdbc.driver.OracleDriver jdbc.url ...
- Oracle的存储过程基本写法
转: Oracle的存储过程基本写法 目录 1.1,Oracle存储过程简介: 1.2,创建存储过程的语法: 2.0,游标的使用.看到的一段解释很好的概念,如下: 回到顶部 1.1,Oracle存储过 ...
- oracle update left join 写法
oracle update left join 写法 (修改某列,条件字段在关联表中) 案例: E:考核表 X,:用户表 USERNAME 关联 需求:修改营业部最高分 分析:通过登录账号的营业部OR ...
- mybatis批量增、删、改(更新)操作oracle和mysql批量写法小记
前言:用mybatis也好几年了,mybatis在批量的增删操作也写起来也是比较简单的,只有批量更新这一块是特别坑,特此记录. 注:本文主要用来记录oracle和mysql数据库在使用mybatis的 ...
- mybatis中Oracle分页语句的写法
最近一段时间使用oracle数据库查询分页, 用的是springboot. Oracle数据库中没有像mysql中limit的写法, 只能换其他方式写. 考虑到oracle中的ROWNUM变量, 使用 ...
- oracle中分页函数写法
1.常见的分页查询语句: 查询21到40条之间的数据:SELECT *FROM (select UI.*,ROWNUM RN FROM (select * from user_info) AWHERE ...
- oracle之三存储库及顾问框架
AWR存储库及顾问框架(PPT-I-349-360) 14.1 Oracle数据库采样ASH和AWR. 1) ASH(Active Session History) ASH收集的是活动会话的样本数据, ...
- Oracle 中的Top写法
由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum的组合来实现select top n的查询.简单地说,实现方法如下所示:select 列名 ...
- oracle计算过程执行时间写法
--在oracle写过程中很多是对数据处理,业务比较繁琐,有的需要结合job定时器使用,这样就需要知道执行过程的大概时间,不废话直接上脚本,统计单位为分钟 PROCEDURE DATA_DEAL_WI ...
随机推荐
- JS---DOM---为同一个元素绑定多个不同事件指向同一个事件处理函数
为同一个元素绑定多个不同事件指向同一个事件处理函数 1. 用了switch(e.type){} 来修改 2. break <input type="button" value ...
- PMBOK 指南 第二章 项目运行环境
2.1概述 事业环境因素(EEF)源于项目外部(往往企业外部) 组织过程资产(OPA)源于企业内部 2.2 事业环境因素 项目团队不能控制 2.2.1 组织内部的事业环境因素 组织文化.结构和治理 设 ...
- Pikachu-XSS
XSS(跨站脚本)概述 Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以分为如下几种常见类型: ...
- 蒟蒻的PKUWC2019划水记(更新ing)
前言 (结束再补) \(Dec\ 20th\) 正式出发 今天,是正式出发的日子. 虽说是星期五,可并没有去学校晨跑.难得睡到了\(7\)点,起来匆匆吃完了早饭(一个手抓饼),就出发去火车站了. 到了 ...
- 让 Lua 访问数据库
Lua 自身并没有提供访问数据库的函数,但是借助外部扩展库我们可以很容易实现对数据库的各种操作,下面就为大家介绍这样一个扩展库 - LuaSQL,你可以在下载区得到它. LuaSQL 定义了一套简单的 ...
- 面试连环炮系列(五):你们的项目为什么要用RabbitMQ
你们的项目为什么要用RabbitMQ? 消息队列的作用是系统解耦.同步改异步.请求消峰,举个下订单的例子: 前端获取用户订单信息,请求后端的订单创建接口.这个接口并不直接请求订单服务,而是首先生成唯一 ...
- glusterFS空间不够了怎么办
查看glusterFS情况 oc project infra-storage oc get all #找到其中一个pod,前缀为 po/glusterfs-registry-xxxx oc exec ...
- C语言笔记 03_常量&存储类
常量 常量是固定值,在程序执行期间不会改变.这些固定的值,又叫做字面量. 常量可以是任何的基本数据类型,比如整数常量.浮点常量.字符常量,或字符串字面值,也有枚举常量. 整数常量 整数常量可以是十进制 ...
- 利用PyInstaller打包exe文件
前言 平常我们通过Python写完一些小脚本之后,如果使用不频繁的话,一般会选择在DOS界面直接跑脚本,或者在IDE中运行.但当我们需要频繁使用某些脚本,或者在没有Python环境的机器上也能顺利运行 ...
- C#本地文件下载以及FTP文件服务下载(以Pdf文件为例)
一.C#实现本地文件下载 1.文件下载的路径 文件名称 以及文件下载之后要放的位置 这三个变量是必须要的 2.定义以下四个对象: FileWebRequest ftpWebRequest = nu ...