Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Вниз

Проблема с вычисляемыми полями в SQL запросе   Найти похожие ветки 

 
SergP   (2003-12-17 12:53) [0]

ADO, Provider=VFPOLEDB.1

Делаю такой запрос:
select r,region,vb,plm,mon,mon/plm as procent ....

так mon/plm as procent работает нормально в designtime,
но в runtime вылезает ошибка (что-то типа "Invalid floating point operation")
Как сделать чтобы оно нормально работало в runtime? И почему в designtime оно нормально работает?


 
JibSkeart   (2003-12-17 13:01) [1]

А дальше с ними ничего не делаешь ?


 
SergP   (2003-12-17 13:04) [2]


> JibSkeart © (17.12.03 13:01) [1]
> А дальше с ними ничего не делаешь ?


Дальше TADOQuery --> TDataSource --> TDBGrid
и пока больше ничего....


 
JibSkeart   (2003-12-17 13:07) [3]

попробуй заверни в хп ...


 
Sandman25   (2003-12-17 13:08) [4]

А select r,region,vb,plm,mon,mon/(plm+1) as procent ....
работает?


 
JibSkeart   (2003-12-17 13:12) [5]

дейсвительно проверяй если plm <>0 то выводи :)
а дальше join или union
для 0 :)


 
SergP   (2003-12-17 13:24) [6]


> JibSkeart © (17.12.03 13:12) [5]
> дейсвительно проверяй если plm <>0 то выводи :)
> а дальше join или union
> для 0 :)


В таблице действительно есть записи где plm=0, но в where у меня отбираются такие записи:
select r,region,vb,plm,mon,mon/plm as procent, mon-plm as razn from region,z3121603 where (p=999999 or p=900999) and c_sti=r

для которых plm не может быть равен 0.
т.е. в моей таблице у записей для которых p=999999 or p=900999 , plm не равен 0


 
SergP   (2003-12-17 13:28) [7]


> Sandman25 © (17.12.03 13:08) [4]
> А select r,region,vb,plm,mon,mon/(plm+1) as procent ....
> работает?


Вот блин. Это работает. В натуре связано с делением на 0. Получается что эта вся фигня вычисляется для всех записей.
Странно: нафига тогда производить вычисления для записей которые не попадают под условия where?


 
Sandman25   (2003-12-17 13:28) [8]

[4] Sandman25 © (17.12.03 13:08)


 
Sandman25   (2003-12-17 13:30) [9]

[7] SergP © (17.12.03 13:28)

Наверное, все-таки в моей таблице у записей для которых p=999999 or p=900999 , plm не равен 0 неверно.


 
SergP   (2003-12-17 13:36) [10]


> Sandman25 © (17.12.03 13:30) [9]
> [7] SergP © (17.12.03 13:28)
>
> Наверное, все-таки в моей таблице у записей для которых
> p=999999 or p=900999 , plm не равен 0 неверно.


Таблица небольшая, так что я проверил все вручную. Там все действительно так как я сказал. Кроме того запрос работает если TADOQuery активировать в designTime.

Вобщем если не получится сделать нормально, то уберу это поле и буду вычислять уже в самой проге это значение....


 
Sandman25   (2003-12-17 13:38) [11]

[10] SergP © (17.12.03 13:36)

Понятно. Может, так данная СУБД (FoxPro?) работает с запросами.


 
SergP   (2003-12-17 14:02) [12]


> Понятно. Может, так данная СУБД (FoxPro?) работает с запросами.


А черт их разберет эти СУБД, у всех синтаксис запросов разный, постоянно путаешься... А теперь еще и такие глюки (вернее особенности...)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
14-37917
Undert
2003-12-19 21:16
2004.01.13
Посоветуйте программку !


1-37605
NneRreaLl
2003-12-29 01:07
2004.01.13
Передать результат


3-37522
Sandman25
2003-12-16 17:33
2004.01.13
Insert и Autoincrement


3-37570
Alex_x
2003-12-17 13:45
2004.01.13
DBtree


3-37584
Konuhov Sergey
2003-12-13 15:08
2004.01.13
Портится счетчик в Autoincrement поле.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский