Прошу прощения, если это название не представляет мою проблему здесь.SQL FIFO Logic в sql server 2008
У меня есть таблица 1 с несколькими элементами.
ТАБЛИЦА 1
|No|Item|Quantity X|
|1 |A |20 |
|2 |A |21 |
|3 |A |10 |
|4 |B |3 |
|5 |B |4 |
...
Моя пользовательская функция FIFO результат для элемента A:
|No|Name |Quantity Y|
|1 |Document1|2 |
|2 |Document2|20 |
|3 |Document3|5 |
|4 |Document4|1 |
|5 |Document5|22 |
Моя пользовательская функция FIFO результат для элемента B:
|No|Name |Quantity Y|
|1 |Document100|2 |
|2 |Document101|2 |
|3 |Document102|4 |
Ожидаемый результат:
ТАБЛИЦА 2
Item|Quantity X|Name |Quantity Y|
A |20 |Document1 |2 |
A |20 |Document2 |18 |
A |21 |Document2 |2 |
A |21 |Document3 |5 |
A |21 |Document4 |1 |
A |21 |Document5 |13 |
A |10 |Document5 |10 |
B |3 |Document101|2 |
B |3 |Document102|1 |
B |4 |Document102|1 |
B |4 |Document103|3 |
У меня есть SQL Server 2008. Как достичь этого с помощью SQL?
Я не понимаю связь между каждым столом .. – sagi
, что делает ваша функция FIFO выглядеть? и откуда идут данные этого документа? –
Возможно, вы захотите использовать ['cross apply'] (https://technet.microsoft.com/en-us/library/ms175156 (v = sql.105) .aspx), но я не вижу, как ваши данные объединяются вверх. – DaveShaw