Показать сообщение отдельно
Старый 23.09.2010, 16:15   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1789 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Evgeniy2020 Посмотреть сообщение
PurchLine PurchLine;
PurchLine PurchLine_1_1;
PurchTable PurchTable;
;
while SELECT SUM(PurchQty) FROM PurchLine
WHERE ((PurchLine.PurchStatus == 1))
&& ((PurchLine.ItemId == 'ФТ-018'))
EXISTS JOIN * FROM PurchTable
WHERE PurchLine.PurchId == PurchTable.PurchId && ((PurchTable.PurchStatus == 1))
NOTEXISTS JOIN * FROM PurchLine_1_1
WHERE PurchTable.PurchId ==
PurchLine_1_1.PurchId && ((PurchLine_1_1.ItemId == 'ФТ-018'))
&& ((((PurchLine_1_1.PurchStatus != 1)
|| (PurchLine_1_1.Blocked == 1))))
{
info('1');
}
PurchTable в этом запросе абсолютно лишний. Запрос эквивалентен следующему
X++:
PurchLine PurchLine;
PurchLine PurchLine_1_1;
;
while select sum(PurchQty) from PurchLine
where 
    PurchLine.PurchStatus == 1 && PurchLine.ItemId == 'ФТ-018'
notexists join PurchLine_1_1
where 
    PurchLine_1_1.PurchId == PurchLine.PurchId && 
    PurchLine_1_1.ItemId == PurchLine.ItemId && 
   (PurchLine_1_1.PurchStatus != 1 || PurchLine_1_1.Blocked == 1)
{
    info('1');
}
За это сообщение автора поблагодарили: titov (2).