【发布时间】:2019-07-31 12:11:35
【问题描述】:
我正在使用 SQL Server 2014;我附上了一张purchase 表(来自供应商)和销售表。
首先,我需要使用一个基于采购表的排名的销售表,先从供应商表购买的产品在销售表中先销售(先进先出法)。
我如何进行这些计算?
附件是purchase 表中的排名计算。
谢谢。
表格:
CREATE TABLE Purchases
(
PurID INT,
ItemID VARCHAR(5),
Qty INT,
UnitPrice INT
)
INSERT INTO Purchases (PurID, ItemID, Qty, UnitPrice)
VALUES ('1', 'A', '50', '3'),
('2', 'A', '60', '2'),
('3', 'A', '90', '6'),
('5', 'B', '5', '5'),
('6', 'B', '15', '4')
CREATE TABLE Sales_5
(
InvID INT,
ItemID VARCHAR(5),
Qty INT,
UnitPrice_Fifo INT
)
INSERT INTO Sales_5 (InvID, ItemID, Qty, UnitPrice_Fifo)
VALUES ('1', 'A', '100', '250'),
('2', 'A', '100', '560'),
('5', 'B', '10', '45'),
('6', 'B', '10', '40')
表购买排名:
with PurchasesbyFifo AS
(
select
itemid,
Purid,
rank () over (partition by itemid order by Purid ASC) as rank_BY_Fifo
from
[Purchases]
)
【问题讨论】:
-
请在问题中作为文本表格提供示例数据和所需结果。另外,解释你想要实现的逻辑。
-
@syyt,请提供加入密钥以及所需的输出。
标签: sql sql-server