Ниче не понимаю

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Ниче не понимаю

Сообщение Gameus_ »

В супорте в модуле sql выплняю запрос

Код: Выделить всё

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
Как такое может быть ? :-?
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

я думаю что не стоит в where делать ограничения равенства на поля типа double :eek:
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Сообщение aleks1232321 »

Да уж, с данными типа double в гал-ке всегда большая проблема:
написал 2203.40, а в базе м.б. число, типа 2203.3899978,
написал 50.00, а в жизни 50.00000000001
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

а как быть ?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

1.в галке все таки вычислите spsopr.price по ctrl+F4
или в сапорте найдите сию запись и посмотрите чего там.
наверное там 2203.3999999999 - в галке форматер наверное просто обрезал хвост и все
2.в = - конфигратор - параметры
посмотрите в секции Common DeltaDouble - может там большее число стоит.
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

в галке по ctrl+F4 стоит 2203,39
в конфигураторе 0.000000000000020
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

а если
string(spsopr.price,20,10)?
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

не помогает :(
но похоже нашли в чем проблема...
в настройках галки стояло округление, так что похоже запрос нормально отрабатывает, а касяк допустили настройщики

PS 3 дня головой об стену, а все из-за чего ? :)
Saltava
Новичок
Сообщения: 27
Зарегистрирован: 05 июл 2006, 08:44
Откуда: ООО "СИБИНТЕК" г.Ангарск

Сообщение Saltava »

И это не в последний раз, когда такое будет происходить :)
Я тут тож башку ломал над одной проблеммой, а оказалось, что просто юзеры слепые :)
Viva la resistans
Ответить