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 ...
随机推荐
- springcloud 微服务分布式 框架源码 activiti工作流 前后分离
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...
- 基于Tomcat的GeoServer部署步骤
一.安装JAVA 资源:JDK1.8 提取码:0y26 步骤: 1.安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置": 2. ...
- Cesium 限制相机进入地下
有时我们在Cesium操作时,点击鼠标中间滚轮可更改视角,有时会使相机进入地下,导致体验很差,网上说了很多中方法,效果都不好或者没效果,下面是我翻了源码找到的方法,亲测有效.如有问题可按照专栏上的联系 ...
- 拖动条(SeekBar)的功能与用法
拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...
- cinder安装与配置
cinder是openstack中提供块存储服务的组件,主要是为虚拟机实例提供虚拟磁盘. 通过某种协议(SAS,SCSI,SAN,iSCSI等)挂接裸硬盘,然后分区.格式化创建的文件,或者直接使用裸硬 ...
- H5和ionic RN和Weex 他们之间的比较
使用H5和ionic 进行移动APp开发 首先要开发一个完整的网站,然后,在网站的基础上,使用 H5+huozhe ionic提供的打包技术,把网站打包成一个应用. 把网站打包成一个可以安装到手机上运 ...
- 【转】CAP 定理的含义
原文链接:CAP 定理的含义 作者: 阮一峰 日期: 2018年7月16日 分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的. 分布式系统的最大难点,就是各 ...
- C# - VS2019 WinFrm应用程序调用WebService服务
WinFrm应用程序调用WebService服务 关于WebService的创建.发布与部署等相关操作不再赘述,传送门如下:C# VS2019 WebService创建与发布,并部署到Windows ...
- python的学习大纲
python基础部分 函数 初识函数 函数进阶 装饰器函数 迭代器和生成器 内置函数和匿名函数 递归函数 常用模块 常用模块 模块和包 面向对象 初识面向对象 面向对象进阶 网络编程 网络编程 并发编 ...
- 使用ul和li进行图片的布局
使用ul和li进行浮动布局(自适应) 1 图片上下两排: 首先盒子的宽度要给100% ul包裹一个div,首先量好盒子的宽和高,并进行设置, margin 0 auto 盒子居中显示 每个li向左浮动 ...