当前位置: 首页 > news >正文

视图显示库存余量

实现效果:


CREATE VIEW  [dbo].[v_Show_StockInOrderItem]

AS
WITH cte_detail AS
(
   --已入库数量
SELECT s.ProductID,s.ColorsID,s.SizesID,s.Title,s.ColorsName,s.SizesName,s.Quantity AS qty 
FROM TheBeerHouse.StockInItems s 
LEFT JOIN TheBeerHouse.StockIn si ON si.StockInID = s.StockInID

WHERE si.Status='Audited'     --已审核的标志,

              --TheBeerHouse.StockIn相当于是一个订单,谁什么时间入库   

              --TheBeerHouse.StockInItems 与订单表相关联,详细这个订单入库的哪个产品,数量,颜色,尺码等


UNION ALL

--已出库数量
SELECT o.ProductID AS oProductID,o.ColorsID AS oColorsID,o.SizesID AS oSizesID,o.Title AS otitle,
o.ColorsName AS oColorsName,o.SizesName AS oSizesName,-o.Quantity AS qty
FROM TheBeerHouse.OrderItems o
LEFT JOIN TheBeerHouse.Orders oo ON oo.OrderID = o.OrderID

WHERE oo.ShippingStatus = 'ApplyShipped'       --已出库的标志

              --TheBeerHouse.Orders 出库订单,谁什么时间出库   

              --TheBeerHouse.OrderItems 与订单表相关联,详细这个订单出库的哪个产品,数量,颜色,尺码等

)

--把上边的结果都结合起来

,cte_qty AS
(
SELECT ProductID,SUM(qty) AS qty,Title,SizesID,SizesName,ColorsID,ColorsName      --qty为入库量-出库量也就是库存余量
FROM cte_detail
WHERE ProductID=ProductID AND ColorsID=ColorsID AND SizesID=SizesID
GROUP BY ProductID,Title,SizesID,SizesName,ColorsID,ColorsName
)
SELECT   ROW_NUMBER()  OVER(ORDER BY T.ProductID) AS '数据标识' 
,产品标识 = T.ProductID
,ROW_NUMBER()  OVER(ORDER BY t.ProductID) AS '序号'
,产品编号 = T.ProductID
,产品名称 = T.Title
,颜色=T.ColorsName
,尺码=T.SizesName
,入库总量=(SELECT ISNULL(SUM(s.Quantity),0)
FROM TheBeerHouse.StockInItems s 
LEFT JOIN TheBeerHouse.StockIn si ON si.StockInID = s.StockInID
WHERE si.Status='Audited' AND s.ProductID=T.ProductID AND s.SizesID=T.SizesID AND s.ColorsID=T.ColorsID)
,销售总量=(SELECT ISNULL(SUM(o.Quantity),0)
FROM TheBeerHouse.OrderItems o
LEFT JOIN TheBeerHouse.Orders oo ON oo.OrderID = o.OrderID
WHERE oo.ShippingStatus = 'ApplyShipped' AND o.ProductID=T.ProductID AND o.SizesID=T.SizesID AND o.ColorsID=T.ColorsID)
,库存数量 = ISNULL(T.qty,0)
FROM 
cte_qty AS T

GO

相关文章:

  • C++11
  • SQL Server基础知识
  • 一个byte缓存--用于图片或视频
  • 微软 WPC 2014 合作伙伴keynote
  • 【墙裂推荐】适合高中生看的HTML5网页开发实例入门书
  • yum功能:安装软件组,全系统更新
  • SendMessage,BroadcastMessage
  • Windows网络命令
  • 数据库设计原则
  • UESTC 2014 Summer Training #6 Div.2
  • 堆栈原理
  • C++11 FAQ中文版--转
  • AVC1与H264的差别
  • sql点滴42—mysql中的时间转换
  • EucOne调试
  • 2017-09-12 前端日报
  • 2017届校招提前批面试回顾
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Gradle 5.0 正式版发布
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • java第三方包学习之lombok
  • Redis中的lru算法实现
  • spring + angular 实现导出excel
  • tweak 支持第三方库
  • 闭包,sync使用细节
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 多线程 start 和 run 方法到底有什么区别?
  • 复杂数据处理
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 数组大概知多少
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 王永庆:技术创新改变教育未来
  • 小程序01:wepy框架整合iview webapp UI
  • 一个完整Java Web项目背后的密码
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • #单片机(TB6600驱动42步进电机)
  • $.each()与$(selector).each()
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (阿里云万网)-域名注册购买实名流程
  • (分布式缓存)Redis持久化
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • .NET MVC第三章、三种传值方式
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET大文件上传知识整理
  • .net的socket示例
  • .Net各种迷惑命名解释
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [AIGC] MySQL存储引擎详解
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [BZOJ3757] 苹果树
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [Java][Android][Process] ProcessBuilder与Runtime差别
  • [JavaWeb]—前端篇