![]() |
#1 |
Участник
|
Как отработает запрос?
Здравствуйте, подскажите пожалуйста, как отработает запрос:
X++: while select forupdate custVendSettlement where custVendSettlement.TransDate > postingDate && custVendSettlement.SettleAmountCur && custVendSettlement.CanBeReversed join custVendTrans where custVendTrans.RecId == custVendSettlement.TransRecId && custVendTrans.TransDate <= postingDate { // custVendTransReg.reread(); select forupdate custVendTransReg where custVendTransReg.RecId == custVendTrans.RecId && custVendTransReg.TableId == custVendTrans.TableId; custVendTransReg.LastExchAdj = postingDate; custVendTransReg.update(); } |
|
![]() |
#2 |
MCITP
|
![]() Цитата:
Сообщение от VORP
![]() Здравствуйте, подскажите пожалуйста, как отработает запрос:
X++: while select forupdate custVendSettlement where custVendSettlement.TransDate > postingDate && custVendSettlement.SettleAmountCur && custVendSettlement.CanBeReversed join custVendTrans where custVendTrans.RecId == custVendSettlement.TransRecId && custVendTrans.TransDate <= postingDate { // custVendTransReg.reread(); select forupdate custVendTransReg where custVendTransReg.RecId == custVendTrans.RecId && custVendTransReg.TableId == custVendTrans.TableId; custVendTransReg.LastExchAdj = postingDate; custVendTransReg.update(); } Да и зачем 2 раза апдэйтить одну и ту же строчку? перепишите тогда уже запрос с группировкой или с exists join для custVendSettlement...
__________________
Zhirenkov Vitaly |
|
![]() |
#3 |
Участник
|
Да извиняюсь, там должен был быть не CustvendTransReg.reread() а custVendTrans.reread().
То есть перечитывается custVendTrans, причём иногда. Код из custVendExchAdjTrans.update() и exchAdjustSettlement(). Переделал на вложенные циклы, в первом custVendTrans и exists join на CustVendSettlement, во втором просто custVendSettlement. Теперь больше перечитываться вроде не должен. Спасибо большое! |
|
Теги |
join, query, запрос (query) |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|