Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.29;
Скачать: CL | DM;

Вниз

Null в вычисляемых полях   Найти похожие ветки 

 
Andrio ©   (2003-05-10 13:17) [0]

Есть такое поле: (Можно не углубляться в его описание)

NUMERIC(18,2)
COMPUTED BY ((select sum(SummaLgot) from LgotsMan where ((LgotsMan.LicScet=Nachislenia.LicScet) and (LgotsMan.Usluga=Nachislenia.Usluga) and (LgotsMan.YYYY=Nachislenia.YYYY) and (LgotsMan.MM=Nachislenia.MM))))

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

Суть в том, что если одно из полей по которым ведется расчет пустое "NULL" (или Nill), то общая сумма тоже - Null.

Как сделать так, чтобы пустые значения не приводили общий результат к "Null", и в место промежуточных "Null" - подставлялось "0".

"Default 0" в данном случае не дает результатов...

Может скрипт на вычислимое поле поменять... Но я не знаю как в этот скрипт конструкцию "If-Then-Else" поставить и какие значения и куда будут передаваться. Ведь это не триггер - переменные вести нельзя (как мне кажется). Тогда как?
Писать триггеры на эти таблицы и в них подставлять данные значения - слишком грубо и некрасиво :)

Заранее благодарен.


 
kaif ©   (2003-05-10 17:01) [1]

Можно порекомендовать 2 пути
1. Никогда не использовать поля NULL в качестве полей, хранящих данные, по которым могут производиться вычисления. Я лично придерживаюсь этого правила и все такие поля создаю NOT NULL.
2. Написать свои UDF для конвертации NULL в разных типах данных, например, 0 или "" и применять эти UDF.


 
Desdechado ©   (2003-05-10 17:49) [2]

солидарен с kaif
если уж очень горит, см. на ibase.ru UDF-коллекцию rfunc, функция Z


 
Alexandr ©   (2003-05-11 09:36) [3]

грубо это использовать такие computed by
" триггеры это как раз нормально



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

Текущий архив: 2003.05.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-94841
Vulko
2003-05-19 20:42
2003.05.29
FileListBox


1-94837
PAI
2003-05-19 18:53
2003.05.29
Как создать потомка VCL-класса?


3-94735
Andrey Filatow
2003-05-08 16:30
2003.05.29
Фильтрация в TQuery


3-94697
Avreliy
2003-05-07 20:18
2003.05.29
Non-blob column in table required to perform operation!


14-95111
iskatel
2003-05-12 12:39
2003.05.29
Высокая духовность. Что это.