是否有SQL语句可查询发票并使用FIFO分配进行接收

时间:2019-03-28 03:51:52

标签: tsql recursion join

我有发票清单和接收清单,想使用FIFO方法分配接收。

我看过几个例子:

FIFO SQL Query for stock and value

a FIFO query in SQL Server

使用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)
  • IV1已由PY1全额支付
  • IV2由PY2,PY3和PY4(500)支付
  • IV3,如果由PY4(500)支付

可以使用传统的LOOP方法执行此操作,但是如果可能的话,使用CTE或多个SQL查询会更好。

有什么建议吗?

0 个答案:

没有答案