根据销售日期的先进先出定价计算利润

问题描述 投票:-4回答:1

如何通过SQL每天找到销售保证金,假设它们按照购买的顺序出售? enter image description here

sql sql-server postgresql sql-server-2008 access-vba
1个回答
0
投票

请试试这个解决方案 -

;with cte as 
(
select purchase_date,item,cost, qty as num from purchase
union all
select purchase_date,item,cost, num-1 from cte where num>1
), 
cte2 as
(
select sale_date,item,price, qty as num from sales
union all
select sale_date,item,price, num-1 from cte2 where num>1
)

select sale_date, sum(price-cost) from (

(select sale_date, item, price ,row_number() over (order by sale_date,num) rn from cte2) s
inner join
 (select purchase_date, item, cost ,row_number() over (order by purchase_date,num) rn2 from cte) z
 on s.item=z.item and s.rn=z.rn2)  

按sale_date分组

© www.soinside.com 2019 - 2024. All rights reserved.