Цитата:
Сообщение от
ZVV
2 Rimantas
Одним запросом это можно сделать через Outer Join с группировкой, примерно так:
X++:
Select sum(xxxQty), sum(yyyAmount), ... from InventSum
group by ItemId, InventDimId, ...
outer join InventTrans
group by ItemId
where InventTrans.InventDimId == InventSum.InventDimId
&& InventTrans.ItemId == InventSum.ItemId
&& InventTrans.DatePhysical >= dBgn;
Хинты, условия и нужные поля (там где многоточия) добавить по вкусу...
В цикле проверять заполненность поля InventTrans.ItemId - если есть, то это ваш первый случай, если нет - второй.
Насколько это будет быстрее или медленнее, и, соответсвенно, целесообразно использовать, проверьте сами на своих данных.
Дело в том что в отчете может так выглядит :
товар кол1 приход отход кол2
тов1 0 10 -10 0 - в инветСумме уже нету , но были движения ,
тов2 10 0 -10 0 - тоже самое ,
тов22 0 10 0 10 - были движения , есть в инвентсумме ,
тов3 10 0 0 10 - нету движении ...
В моем варянте , 2-ом , чтобы неискать я сделал условие "!= 0" для количества в инвентсумме - чтобы поскорее все работало ... А можно как нибудь ещё добавить "или" в query ИнвентСума такое ?