国内顶尖网站设计公司,广州营销型网站建设团队,2345影视大全最新版2021下载安装,wordpress 清理 数据库今天为完成客户成品仓盘点的统计功能#xff0c;做了盘点统计表#xff0c;这个功能有点复杂#xff0c;要将生产数据与库存的差异做成一个统计报表#xff0c;报表要反映出差异的明细。其实#xff0c;这个项目拖了也挺久了#xff0c;本来客户计划用于2018年终盘点做了盘点统计表这个功能有点复杂要将生产数据与库存的差异做成一个统计报表报表要反映出差异的明细。其实这个项目拖了也挺久了本来客户计划用于2018年终盘点不过后来管理层作出决定认为年终盘点启动一个新项目的有风险所以项目交期延长改为了今年的季度盘点即3月底的盘点现在已经3月份了项目要尽快完成以便客户使用。为了实际统计报表一目了然的效果必须显示生产型号、WIP结存、库存数(包括货架尾数架及尾数框)重点是显示差异的明细。在做报表过程查询了很多关于ORACLE的函数其中对于分析函数Over()还是第一次使用该函数功能强大特别适合使用于数据统计方面。over()函数写法over(partition by expr2 order by expr3)根据expr2对结果进行分区在各分区内按照expr3进行排序over函数不能单独使用需要与row_number()rank()和dense_ranklag()和lead(),sum()等配合使用。这三个函数与over连用时order by 不能丢失不写partition by时默认结果集为一整个分区。row_number()与over(partition exp2 order by exp3)配合使用可以对分区根据exp1进行排序此排序是从1开始即使遇到相同的数据也区分开来排序。我写的盘点统计SQL如下CREATE OR REPLACE VIEW BARCODE_FG_CHECK_STOCK_AL ASSELECT S.EDITION AS 盘点版本,S.SOURCE_CPN AS 型号,S.QTY AS 盘点总数,NVL(W.QTY, 0) AS WIP数量,S.QTY – NVL(W.QTY, 0) AS 差异,S.SHELF_ID AS 货架编号,S.SHELF_ID_BACKLOG AS 货架数量,S.MANTISSA_SHELF_ID AS 尾数架编号,S.MANTISSA_SHELF_ID_BACKLOG AS 尾数架数量,S.MANTISSA_CABINET_ID AS 尾数柜编号,S.MANTISSA_CABINET_ID_BACKLOG AS 尾数柜数量FROM (SELECT A.EDITION,A.SOURCE_CPN,A.QTY,B.SHELF_ID,B.SHELF_ID_BACKLOG,B.MANTISSA_SHELF_ID,B.MANTISSA_SHELF_ID_BACKLOG,B.MANTISSA_CABINET_ID,B.MANTISSA_CABINET_ID_BACKLOGFROM (SELECT V.EDITION,M.SOURCE_CPN,SUM(M.SHELF_ID_BACKLOG) SUM(M.MANTISSA_SHELF_ID_BACKLOG) SUM(M.MANTISSA_CABINET_ID_BACKLOG) AS QTYFROM BARCODE_FG_INVENTORY M, BARCODE_FG_INVENTORY_VER VWHERE M.VER_PTR V.PKEYGROUP BY V.EDITION, M.SOURCE_CPN) A,(select BARCODE_FG_CHECK_STOCK_ALL.SOURCE_CPN,DECODE(row_number()OVER(partition by SOURCE_CPN,SHELF_ID ORDER BY SOURCE_CPN),1,SHELF_ID) SHELF_ID,DECODE(row_number() OVER(partition by SOURCE_CPN,SHELF_ID_BACKLOGORDER BY SOURCE_CPN),1,SHELF_ID_BACKLOG) SHELF_ID_BACKLOG,DECODE(row_number()OVER(partition by SOURCE_CPN,MANTISSA_SHELF_ID ORDER BYSOURCE_CPN),1,MANTISSA_SHELF_ID) MANTISSA_SHELF_ID,DECODE(row_number()OVER(partition by SOURCE_CPN,MANTISSA_SHELF_ID_BACKLOGORDER BY SOURCE_CPN),1,MANTISSA_SHELF_ID_BACKLOG) MANTISSA_SHELF_ID_BACKLOG,DECODE(row_number()OVER(partition by SOURCE_CPN,MANTISSA_CABINET_ID ORDER BYSOURCE_CPN),1,MANTISSA_CABINET_ID) MANTISSA_CABINET_ID,DECODE(row_number()OVER(partition by SOURCE_CPN,MANTISSA_CABINET_ID_BACKLOGORDER BY SOURCE_CPN),1,MANTISSA_CABINET_ID_BACKLOG) MANTISSA_CABINET_ID_BACKLOGfrom BARCODE_FG_CHECK_STOCK_ALL) BWHERE A.SOURCE_CPN B.SOURCE_CPN) S,(SELECT CPN, SUM(QTY_BACKLOG_UNIT) AS QTYFROM (SELECT SUBSTR(DATA0050.CUSTOMER_PART_NUMBER, 1, 7) AS CPN,DATA0056.QTY_BACKLOG_UNITFROM DATA0056, DATA0006, DATA0050, DATA0034WHERE DATA0056.WO_PTR DATA0006.PKEYAND DATA0006.CUST_PART_PTR DATA0050.PKEYAND DATA0056.DEPT_PTR DATA0034.PKEYAND DATA0056.QTY_BACKLOG 0AND DATA0034.DEPT_CODE ’24′)GROUP BY CPN) WWHERE S.SOURCE_CPN W.CPN()ORDER BY S.EDITION, S.SOURCE_CPN;当然这个并非最终版本虽然功能都已经实际不过对于同一型号有多个货架与多个尾数架的数据时可能会存在统计不准这个需要再测试以后完成盘点功能后再发一个牌本吧。等等别走 ^_^好消息快手官方发红包啦登录即送2元秒提现 查看详情