zoukankan      html  css  js  c++  java
  • 视图显示库存余量

    实现效果:


    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
  • 相关阅读:
    SSP状态寄存器SSPSTAT
    【PIC学习第18例】PIC16F877A 内部EEPROM读写实验
    批量去除flv专辑的片头
    .Net并行库介绍——Task(1)
    一个下载游戏封面的站点
    一个猜数字的小游戏
    RamDisk加速Windows 7?
    .Net并行库介绍——Task(2)
    数独的自动出题算法
    Live Messenger 2009登陆错误的解决方法
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3841385.html
Copyright © 2011-2022 走看看