Показать сообщение отдельно
Старый 04.01.2012, 12:06   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
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 - если есть, то это ваш первый случай, если нет - второй.

Насколько это будет быстрее или медленнее, и, соответсвенно, целесообразно использовать, проверьте сами на своих данных.
__________________
Zhirenkov Vitaly