--参考表--
With RM(MPartNo,MPartName,UM,MSupplier,Stock,MType)
as
( select p_partno MPartNo,p_partname MPartName,p_unit UM,p_supplier MSupplier,Stock,p_type MTypefrom p_partno_rm
), --计算期初库存----RMBeforeQty_tmp(MPartNo, BefQty)
as
(--电线部分统计select  MPartNo, Sum(SumInQty)-Sum(SumOutQty)BefQtyFrom(Select partno MPartNo,Sum(isnull(inQty,0)) * 1000  SumInQty,0 SumOutQty From Storage_Cable Where Indate <'$BDate'group by partno--如果电线发料信息在storage_fixbin中出现,调整下面代码Union allSelect partno MPartNo,0 SumInQty,Sum(isnull(outQty,0)) * 1000  SumOutQty From Storage_Cable Where outdate <'$BDate'group by partno) as t_cable_befQtygroup by MPartNoUnion all--其他材料-----------------------select  MPartNo, Sum(SumInQty)-Sum(SumOutQty)BefQtyFrom(select partno MPartNo,sum(isnull(inqty,0)) SumInQty,0 SumOutQtyFrom Storage_RM Where TicketType <> '归还' And Indate <'$BDate'Group by partnoUnion all--这里需要考虑排除电线select partno MPartNo,0 SumInQty,sum(isnull(outqty,0)) SumOutQtyFrom Storage_fixBinWhere ptype = '发料'  And TicketStatus <> '借用'And outdate <'$BDate'Group by partno) as t_rm_befQtygroup by MPartNo), --再次汇总求期初库存
RMBefQty(MPartNo,BefQty)
as
(Select MPartNo, Sum(BefQty) BefQty From RMBeforeQty_tmpgroup by MPartNo), --电线入库统计
CableIn(MPartNo,ProductionIn,BuyIn,InventoryIn,OtherIn,InventoryProfitIn,ReturnIn)
as
(Select partno MPartNo,Sum(isnull(inQty,0)) * 1000  ProductionIn,0 BuyIn, 0 InventoryIn, 0 OtherIn, 0 InventoryProfitIn, 0 ReturnInFrom Storage_Cable Where Indate >='$BDate' and indate <='$EDate 23:59:59'group by partno),--电线出库统计
CableOut (MPartNo,PlanOut,SellOut,OutPlanOut,InventoryLossesOut,BadMReturnOut,BorrowOut,OtherOut)
as
(Select partno MPartNo,Sum(isnull(outQty,0)) * 1000  PlanOut, 0 SellOut,0 OutPlanOut,0 InventoryLossesOut,0 BadMReturnOut,0 BorrowOut,0 OtherOutFrom Storage_Cable Where outdate >='$BDate' and outdate <='$EDate 23:59:59'group by partno
),
--材料入库
RMIn(MPartNo,ProductionIn,BuyIn,InventoryIn,OtherIn,InventoryProfitIn,ReturnIn)
as
(--其他材料---Select MPartNo,Sum(ProductionIn) ProductionIn,Sum(BuyIn) BuyIn,Sum(InventoryIn)InventoryIn,Sum(OtherIn)OtherIn, Sum(InventoryProfitIn) InventoryProfitIn,Sum(ReturnIn)ReturnInFrom(Select partno MPartNo,Case When tickettype='生产缴库' Then isnull(inQty,0)Else 0 End as ProductionIn,Case When tickettype='采购入库' Then isnull(inQty,0)Else 0 End as BuyIn,Case When tickettype='盘存入库' Then isnull(inQty,0)Else 0 End as InventoryIn,Case When tickettype='其它入库' Then isnull(inQty,0)Else 0 End as OtherIn,Case When tickettype='盘盈入库' Then isnull(inQty,0)Else 0 End as InventoryProfitIn,Case When tickettype='归还' Then isnull(inQty,0)Else 0 End as ReturnInFrom Storage_RMWhere Indate >='$BDate' and indate <='$EDate 23:59:59')as tgroup by MPartNO), --材料出库
RMOut(MPartNo,PlanOut,SellOut,OutPlanOut,
InventoryLossesOut,BadMReturnOut,BorrowOut,OtherOut)
as
(Select MPartNo,Sum(PlanOut) PlanOut,Sum(SellOut) SellOut,Sum(OutPlanOut) OutPlanOut,Sum(InventoryLossesOut) InventoryLossesOut,Sum(BadMReturnOut) BadMReturnOut,Sum(BorrowOut) BorrowOut,Sum(OtherOut) OtherOutFrom(Select partno MPartNo,Case When ticketstatus='生产性领料' Then isnull(OutQty,0)Else 0 End as PlanOut,Case When ticketstatus='销售出库' Then isnull(OutQty,0)Else 0 End as SellOut,Case When ticketstatus='计划外出库' Then isnull(OutQty,0)Else 0 End as OutPlanOut,Case When ticketstatus='盘亏出库' Then isnull(OutQty,0)Else 0 End as InventoryLossesOut,Case When ticketstatus='废料退货' Then -isnull(InQty,0)Else 0 End as BadMReturnOut,Case When ticketstatus='借用' Then isnull(OutQty,0)Else 0 End as BorrowOut,Case When ticketstatus='其它出库' Then isnull(OutQty,0)Else 0 End as OtherOutFrom Storage_FixbinWhere ptype = '发料' And Outdate >='$BDate' and Outdate <='$EDate 23:59:59') as tgroup by MPartNo),--入库集合
SetIn(MPartNo,ProductionIn,BuyIn,InventoryIn,OtherIn,InventoryProfitIn,ReturnIn)
as
(Select * From CableInUnionSelect * From RMIn),--出库集合
SetOut(MPartNo,PlanOut,SellOut,OutPlanOut,
InventoryLossesOut,BadMReturnOut,BorrowOut,OtherOut)
as
(Select * From CableOutUnionSelect * From RMOut)Select *,
ProductionIn + BuyIn+ InventoryIn +OtherIn +InventoryProfitIn As SumIn,
PlanOut + SellOut + OutPlanOut + InventoryLossesOut +BadMReturnOut +OtherOut As SumOut,
BefQty+ProductionIn + BuyIn+ InventoryIn +OtherIn +InventoryProfitIn - (PlanOut + SellOut + OutPlanOut + InventoryLossesOut +BadMReturnOut +OtherOut)As Inventory
From
(select RM.*,BefQty,isnull(ProductionIn,0) ProductionIn,isnull(BuyIn,0) BuyIn,isnull(InventoryIn,0) InventoryIn,isnull(OtherIn,0) OtherIn,isnull(InventoryProfitIn,0) InventoryProfitIn,isnull(ReturnIn,0) ReturnIn,isnull(PlanOut,0) PlanOut,isnull(SellOut,0) SellOut,isnull(OutPlanOut,0) OutPlanOut,isnull(InventoryLossesOut,0) InventoryLossesOut,isnull(BadMReturnOut,0) BadMReturnOut,isnull(BorrowOut,0) BorrowOut,isnull(OtherOut,0) OtherOutfrom RM left join RMBefQty On RM.MPartNo=RMBefQty.MPartNoleft join SetIn  On RM.MPartNo=SetIn.MPartNoleft join SetOut On RM.MPartNo=SetOut.MPartNo
) as t
Where 1=1
$Condition         

转载于:https://www.cnblogs.com/wdfrog/archive/2011/11/11/2245791.html

又一个查询,哥整了一天,NND有点受不鸟了相关推荐

  1. 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?

    自己写的,感觉挺有成就感的,就展示出来吧! 判断一个≥2的整型数是否存在于斐波那契数列中? 若存在,则返回第几项:若不在,则返回-1 #include <stdio.h> long gen ...

  2. mysql2013年8月怎么打出来_2020年8月31日,上周完成了一个查询接口来检查mysql的数据,速度很慢,20200831,从,MySQL,中查,贼...

    2020-08-31 上周完成一个查询接口,从MySQL中查数据,速度贼慢, 原因是数据5000万+,所以真正接触优化的机会来了,所以决定好好研究一下,做一个记录. 事情是这样的,mysql表中只有两 ...

  3. mysql两张表一起计数_mysql-同一张表上的多个联接,其中一个查询计数

    我有一个关于SQL查询的基本问题,即两次将同一张表连接在一起.听起来很简单,但是我有一些麻烦.我希望任何人都可以帮助我解决这个问题:) 我有两个小表:"人民"(列:id,姓名,-) ...

  4. php查询每天的数据进行汇总,关于php:如何在一年内每天只使用一个查询来获取数据?...

    我希望在一年内每天都得到数据,但是我必须每天使用365个查询,例如: for ($i = 0; $i<365; $i++){ $end_day = ...; // the end time of ...

  5. C语言学习之求一个3X3的整型矩阵对角线元素之和。

    求一个3X3的整型矩阵对角线元素之和. int main(){int i,j,sum1=0,sum2=0; //定义 int a[3][3]; //定义数组 //给数组元素赋值 for(i=0;i&l ...

  6. C语言学习之求一个3×3的整型矩阵对角线元素之和

    求一个3×3的整型矩阵对角线元素之和 一条对角线 #include <stdio.h> void main(){int a[3][3],i,j,s,s2;printf("请输入9 ...

  7. 5912. 每一个查询的最大美丽值

    5912. 每一个查询的最大美丽值 给你一个二维整数数组 items ,其中 items[i] = [pricei, beautyi] 分别表示每一个物品的 价格 和 美丽值 . 同时给你一个下标从 ...

  8. java-记录一个子串在整串中出现的次数

    转载 :https://blog.csdn.net/best_xing/article/details/70244858 任务描述:  编写一个程序,记录一个子串在整串中出现的次数,例如记录子串&qu ...

  9. 平均成绩是计算数学计算机英语三门,创建一个查询,计算并显示“学号”和“平均成绩”两个字段内容,其中平均成绩 是计算数学、计算机和英语_开卷宝...

    "学生表"中有"学号"."姓名"."性别"和"入学成绩"等字段.执行如下SQL命令后的结果是( ). ...

最新文章

  1. Swift中 !和 ?的区别及使用与Swift的Guard语句
  2. Java 并发编程——Executor框架和线程池原理
  3. linux 产生0~9内的随机数
  4. HDU2091 空心三角形 水题
  5. 3.TF-IDF算法介绍、应用、NLTK实现TF-IDF算法、Sklearn实现TF-IDF算法、算法的不足、算法改进
  6. ISE调用Notepad++并且实现错误高亮定位的方法
  7. jQuery学习笔记:Ajax(二)
  8. 查找数组是否有重复元素
  9. VMware 安装kali——linux
  10. 设计模式 适配器模式
  11. 智能机器人语音ic丨智能玩具语音识别芯片丨机器人语音播报芯片丨AI语音提示芯片...
  12. 伪类如何动态在html设置样式,VUE项目中对伪类动态设置样式
  13. IntelliJ IDEA 设置主题背景
  14. html颜色代码表,html中黄色代码是什么
  15. 弱口令扫描工具mysql ftp_超级弱口令检查工具
  16. struct files_struct和struct fdtable
  17. 新建web.xml文件头报错报红xmlns=http://xmlns.jcp.org/xml/ns/javaee,http://xmlns.jcp.org/xml/ns/javaee/web-ap
  18. 麻省理工学院赵明民:能穿墙透视的计算机视觉
  19. 聚美优品根据ID取商品详情 API
  20. 推荐 2 个 Spring Boot 工作流项目,轻松搞定工作流!

热门文章

  1. 【零基础学Java】—自定义异常(四十八)
  2. Vue报错:sockjs.js?9be2:1627 GET http://192.168.43.88:8080/sockjs-node/info?t=1631603986586 net::ERR_CO
  3. python工程师干什么的_大数据开发工程师薪资待遇及招聘要求?
  4. 挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?
  5. APP推广有效果,APP地推要以用户需求为核心
  6. Curie Module是什么
  7. 医保要交多少年可以享受终身?医保断交2年有什么影响?
  8. 你有什么难忘的出差经历?
  9. 20多年的朋友如兄弟,没有矛盾4个人如今都绝交了什么原因?
  10. 如果地球突然停止转动,那么接下来会发生什么?