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 ...
随机推荐
- WPF 3D足球导览
根据博文:https://www.cnblogs.com/duel/p/regular3dpoints.html获取足球的3D坐标后,在每一个坐标位置创建一个ModelVisual3D元素,既能实现炫 ...
- 记录AJAX充电点点滴滴
首先要明白什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更 ...
- iOS开发集成支付宝支付、支付宝&微信支付
支付宝支付: 参考链接:https://www.jianshu.com/p/60175e525c0e https://blog.csdn.net/zhonggaorong/article/detail ...
- RMAN 下NOARCHIVELOG和ARCHIVE模式的恢复
恢复处于NOARCHIVELOG模式的数据库 当数据库处于NOARCHIVELOG模式时,如果出现介质故障 ,则最后一次备份之后对数据库所做的任何操作都将丢失.通过RMAN执行恢复时,只需要执行res ...
- rest.css解决不同浏览器元素默认样式不同的问题
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, ...
- IT兄弟连 HTML5教程 “无意义”的HTML元素div和span
HTML只是赋予内容的手段,大部分HTML标签都有其意义(例如,标签a创建链接,标签h1创建标题等),然而div和span标签似乎没有任何内容上的意义,听起来就像一个泡沫做成的锤子一样无用.但实际上, ...
- Centos7启动防火墙时报错Failed to start IPv4 firewall with iptables
今天在虚拟机的Linux系统(centos7)里安装Redis,准备学习一下布隆过滤器呢,安装完后使用Windows本机访问不了虚拟机里的Redis,telnet不通能够ping通.于是就去看防火墙, ...
- puppeteer开发
Chromium下载问题 https://github.com/GoogleChrome/puppeteer/ https://download-chromium.appspot.com/?platf ...
- (3)一起来看下使用mybatis框架的select语句的源码执行流程吧
本文是作者原创,版权归作者所有.若要转载,请注明出处.本文以简单的select语句为例,只贴我觉得比较重要的源码,其他不重要非关键的就不贴了 主流程和insert语句差不多,这里主要讲不同的流程,前面 ...
- 精通awk系列(10):awk筛选行和处理字段的示例
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk数据筛选示例 筛选行 # 1.根据行号筛选 awk 'NR==2' a.txt # 筛选出第二行 awk 'NR>=2' a ...