|
![]() |
#1 |
Участник
|
Цитата:
Из-за сkорости я формирую 2 квери из основной . Одно с exist join , другое - notexist . Моя ошибка была , что в начяле в фетче я присваивал так : qr1 = element.query(); qr2 = element.query(); а надо делать так : qr1 = new Query( element.query() ); qr2 = new Query( element.query() ); Ето потому что дальше я поддаю ети квери на методы классы : qr1 = mojaKlass.qInvSum1( qr1 ); ... qr2 = mojaKlass.qInvSum2( qr2 ); Теперь резултат хороший . Спасибо Вам ! :-) |
|
![]() |
#2 |
Участник
|
Ещё одна просьба ...
![]() Как можно перевести ето : Код: while select custInvTrns index hint ItemIdIdx where custInvTrns.ItemId == invSum.ItemId && custInvTrns.InvoiceDate >= dBgn && custInvTrns.InvoiceDate <= dEnd && custInvTrns.InventDimId == invSum.inventDimId join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId { nPrd += custInvTrns.Qty; nPrdSum += custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 ); } Спасибо ! ![]() |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Rimantas
![]() Как можно перевести ето :
Код: while select custInvTrns index hint ItemIdIdx where custInvTrns.ItemId == invSum.ItemId && custInvTrns.InvoiceDate >= dBgn && custInvTrns.InvoiceDate <= dEnd && custInvTrns.InventDimId == invSum.inventDimId join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId { nPrd += custInvTrns.Qty; nPrdSum += custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 ); } Код: nPrdSum += Currency::Amount(custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 )) Код: while select sum(Qty), sum(LineAmount) from custInvTrns group by ExchRate index hint ItemIdIdx where custInvTrns.ItemId == invSum.ItemId && custInvTrns.InvoiceDate >= dBgn && custInvTrns.InvoiceDate <= dEnd && custInvTrns.InventDimId == invSum.inventDimId join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId { nPrd += custInvTrns.Qty; nPrdSum += custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 ); } |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() если вы уверены, в том что вот здесь вам совершенно точно не нужно округление:
Код: nPrdSum += Currency::Amount(custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 )) Код: while select sum(Qty), sum(LineAmount) from custInvTrns group by ExchRate index hint ItemIdIdx where custInvTrns.ItemId == invSum.ItemId && custInvTrns.InvoiceDate >= dBgn && custInvTrns.InvoiceDate <= dEnd && custInvTrns.InventDimId == invSum.inventDimId join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId { nPrd += custInvTrns.Qty; nPrdSum += custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 ); } ![]() Но я думал обо том , как сделать с одним select , то ето похоже так : Код: select sum(Qty), sum(LineAmount ) from custInvTrns group by ExchRate index hint ItemIdIdx where custInvTrns.ItemId == invSum.ItemId && custInvTrns.InvoiceDate >= dBgn && custInvTrns.InvoiceDate <= dEnd && custInvTrns.InventDimId == invSum.inventDimId join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId; |
|
Теги |
query |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|