Цитата: Mr_Vito ➤ есть табличка с полями
артикул| остаток
0254 | 30
есть табличка :
артикул| количество | дата | поставщик
0254 | 15 |5/05/2009 | постав1
0254 | 4 |4/05/2009 | постав2
0254 | 6 |3/05/2009 | постав1
0254 | 30 |2/05/2009 | постав3
0254 | 12 |1/05/2009 | постав1
как запросом можно получить из них табличку
артикул| остаток | поставщик
0254 | 21 | постав1
0254 | 4 | постав2
0254 | 5 | постав3
Научите уму разуму?
Конкретно для твоего примера:
table1(article, quantity, createdat, supplier) - таблица поставок
table2(article, quantity) - таблица остатков
Код:
select article, sum(q) qq, supplier from
(select t1.article, t1.supplier
case
when t2.quantity-sum(t1.quantity) over (partition by t1.article order by t1.createdat desc rows unbounded preceding)+t1.quantity>=t1.quantity
then t1.quantity
when t2.quantity-sum(t1.quantity) over (partition by t1.article order by t1.createdat desc rows unbounded preceding)+t1.quantity<t1.quantity
and t2.quantity-sum(t1.quantity) over (partition by t1.article order by t1.createdat desc rows unbounded preceding)+t1.quantity>0
then t2.quantity-sum(t1.quantity) over (partition by t1.article order by t1.createdat desc rows unbounded preceding)+t1.quantity
else 0
end q
from table1 t1, table2 t2
where t1.article=t2.article and t2.quantity>0)
where q>0
group by article, supplier
order by article, supplier