我有发票清单和接收清单,想使用FIFO方法分配接收。
我看过几个例子:
FIFO SQL Query for stock and value
使用CTE都可以解决问题,我只是不知道,但是在我的情况下如何做
这里是示例数据:
create table #inv (invoice_id nvarchar(10), invoice_amt money)
insert into #inv select 'IV1','500'
insert into #inv select 'IV2','2500'
insert into #inv select 'IV3','3000'
create table #pay (receive_id nvarchar(10), receive_amt money)
insert into #pay select 'PY1',500
insert into #pay select 'PY2',1000
insert into #pay select 'PY3',1000
insert into #pay select 'PY4',1000
结果应为:
IV1 500 PY1 500
IV2 2500 PY2 1000
IV2 2500 PY3 1000
IV2 2500 PY4 500
IV3 3000 PY4 500 (some miss type previously should 500 not 50)
可以使用传统的LOOP方法执行此操作,但是如果可能的话,使用CTE或多个SQL查询会更好。
有什么建议吗?