У меня есть список счетов и список получения, я бы хотел распределить получение с использованием метода FIFO.
Я видел несколько примеров, таких как:
Запрос FIFO SQL для акцийи значение
запрос FIFO в 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-запросовлучше, если возможно.
Есть предложения?