首页 > 解决方案 > 在同一行:最后一次购买数量+日期,以及库存总量(几个库存位置) - SQL server

问题描述

我试图在 SQL Server 中得到以下结果:

从采购订单行中,最后一次采购数量 + 日期来自订单行表中的所有项目代码,以及我从行表中获得的项目代码的仓库表库存量。

订单行:

ORDER_DATE  ITEM_CODE  QTY
2019-03-01    A         5 
2019-03-02    A         3 
2019-03-05    A         4 
2019-03-03    B         3 
2019-03-04    B         10

仓库:

ITEM_CODE  INSTOCK STOCKPLACE
A           10      VV 
A           3       LP 
A           8       XV 
B           5       VV
B           15      LP 

想要的结果(最新订单日期、最新订单数量和库存总量):

ORDER_DATE ITEM_CODE   QTY  INSTOCK
2019-03-05    A         4   21
2019-03-04    B         10  20

我尝试了一些查询,但都失败了。我前面有一条陡峭的学习曲线 :) 提前感谢所有帮助!

标签: sqlsql-server

解决方案


这是一种方法:

select o.*, wh.*
from (select wh.item_code, sum(wh.instock) as instock
      from warehouse wh
      group by wh.item_code
     ) wh outer apply
     (select top (1) o.*
      from orders o
      where o.item_code = wh.item_code
      order by o.order_date desc
     ) o;

推荐阅读