select KATSOPR.NSOPR,katsopr.dsopr,
katorg.name,
katmc.name,katmc.barkod, if (GROUPMC.kod=4302,'1','2'),spsopr.price,spsopr.KOLFACT,spsopr.price*spsopr.KOLFACT
from KATSOPR,katnazna ,shipment,ttndoc,spsopr,katmc,katorg,GROUPMC
where (( '201' == katsopr.vidsopr
and '1109' == ttndoc.wtable
and katsopr.nrec == ttndoc.cdoc
and ttndoc.cshipment == shipment.nrec
and katsopr.cnazna == katnazna.nrec
and katsopr.nrec ==spsopr.csopr
and katsopr.corg ==katorg.nrec
and spsopr.CMCUSL ==katmc.nrec
and katmc.CGROUPMC ==GROUPMC.nrec))
and upcase(katnazna.name)= upcase(shipment.name)
and spsopr.KOLFACT=0.5
and spsopr.price=2203.40;
выдает 5 строчек результата....
проверяю в галке по номерам полученых накладных
цена стоит 2203.39
Как такое может быть ?
Да уж, с данными типа double в гал-ке всегда большая проблема:
написал 2203.40, а в базе м.б. число, типа 2203.3899978,
написал 50.00, а в жизни 50.00000000001
1.в галке все таки вычислите spsopr.price по ctrl+F4
или в сапорте найдите сию запись и посмотрите чего там.
наверное там 2203.3999999999 - в галке форматер наверное просто обрезал хвост и все
2.в = - конфигратор - параметры
посмотрите в секции Common DeltaDouble - может там большее число стоит.
не помогает
но похоже нашли в чем проблема...
в настройках галки стояло округление, так что похоже запрос нормально отрабатывает, а касяк допустили настройщики