【发布时间】:2017-08-28 18:09:35
【问题描述】:
我有两张桌子。采购表和期末库存表。
采购表
收盘价
我想根据 Transaction_Date desc 从 purchase 表中返回所有行,直到 sum(Purchase_qty) 超过 CLOSING STOCK TABLE 表中的 Closing_Stock。
假设采购表中的 Material_Code AB01 是 CLOSING STOCK TABLE 表中的 42。在这种情况下,返回的行将如下所示
如您所见,前 4 条记录的 sum(Purchase_qty) 为 43,因此超过了 42。我不想显示最后一列。所以逻辑将是当 sum(Purchase_qty) 超过 closing_stock 时停止。
我尝试了以下查询,但没有达到结果。任何意见都非常感谢。
SELECT A.Material_Code,A.Transaction_Date, A.Purchase_qty,
sum(A.Purchase_qty) OVER (ORDER BY Material_Code) AS total
from Purchase A
left join Closing_Stock B ON
A.Material_Code = B.Material_Code
where A.Purchase_qty <= B.Closing_Stock
order by A.Transaction_Date desc
【问题讨论】:
-
是 MySQL 还是 sqlserver?
-
这是 SQL Server @ttallierchio
标签: sql sql-server