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

Вниз

Суммирование в запрсе Null-полей   Найти похожие ветки 

 
Юра   (2002-10-09 16:36) [0]

Пишем Select field1+field2 as summ. Если одно из полей Null то результат Null (поля типа Currency). Как сделать чтобы вместо null считалось 0 средствами Local SQL или FastReport2.3. не заполняя принудительно таблицу нулями.


 
passm   (2002-10-09 16:52) [1]

ИМХО по хорошему никак.
SELECT T1.FIELD1 AS SUMM
FROM TABLE1 AS T1
WHERE T1.FIELD2 IS NULL
UNION ALL
SELECT T1.FIELD2 AS SUMM
FROM TABLE1 AS T1
WHERE T1.FIELD1 IS NULL
UINION ALL
SELECT T1.FIELD1 + T1.FIELD2
FROM TABLE1 AS T1
WHERE T1.FIELD1 IS NOT NULL AND T2.FIELD2 IS NOT NULL


 
Val   (2002-10-09 16:52) [2]

не заполняя принудительно таблицу нулями.
null и ноль принципиально разные вещи, арифметическая операция с null дает null, хотите ноль, пишите в поле именно ноль. Отобразить же вместо null ноль, можно используя событие OnGetText.


 
still   (2002-10-09 16:57) [3]

использование NULL в принципе хорошим тоном не является. хотя бывает необходимость


 
Юра   (2002-10-09 17:15) [4]

>Val ©, still ©
Задача стоит такая: отображать для пользователя null если операцый небыло и 0 если были но сумма льгот нулевая. Итог считать надо в обоих случаях.


 
still   (2002-10-09 17:23) [5]

есть такая штука в SQL как CASE. В T-SQL точно есть, а вот входит ли в стандарт - не знаю. Посмотри в хелпах
Т.е. на SQL Server я бы написал так
select SUM( case Table1.Field1 when NULL then 0 else 0)
where ...
синтаксис могу немного наврать, но смысл такой


 
passm   (2002-10-09 17:32) [6]

still © (09.10.02 17:23)> Для Paradox"а этого нет.


 
Val   (2002-10-09 17:35) [7]

ваш итог - это операция сложения сумм в строке или в столбце??
если в строке, как вы написали, то можно отказаться от запроса и сложить значения в цикле по таблице, средствами делфи делая проверку .IsТull и заменяя на 0.


 
still   (2002-10-09 17:43) [8]

Можно такой вариант - заводишь новую таблицу, в которой храшишь флаг, типа были операции с записью или не было.
Соотв. в сумме добавляется условие -
Where Flag=были


 
MsGuns   (2002-10-09 19:11) [9]

>Юра (09.10.02 17:15)
А что, все начисления-удержания по челу валяются в ОДНОЙ записи ? Зачем делать табуляцию (т.е.суммирование по строке), если все суммы идут разными записями ? Просто калькуляция, а при ней все NULL интерпретируются как нули (для чисел) не применима ?


 
_Voland   (2002-10-09 19:52) [10]

Я делаю так
Select IsNull(Field1,0)+ IsNull(Field2,0) as Summ


 
Val   (2002-10-09 20:41) [11]

>_Voland (09.10.02 19:52)
на Local SQL??? сомневаюсь.


 
Слава   (2002-10-10 10:48) [12]

Сделай себе вьюшку где предварительно отбрасываешь NULL поля,и работай дальше с вьюшкой как с с обыкновенной таблицей которая постоянно обновляется ( конечно если у тебя нет проблемы с РЕСУРСАМИ )


 
Johnmen   (2002-10-10 10:58) [13]

>Слава (10.10.02 10:48)

Ну вот, еще один "отвечающий", не удосужившийся прочитать внимательно вопрос...Печально...:(


 
Слава   (2002-10-10 10:59) [14]

Извините не NULL поля а NULL записи


 
Johnmen   (2002-10-10 11:04) [15]

>Слава

Еще раз невнимателен...:) Обрати внимание на тип СУБД :)



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

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

Наверх





Память: 0.47 MB
Время: 0.009 c
14-101494
Николай Быков
2002-10-11 15:54
2002.10.31
Продвигаем Delphi в массы


6-101413
MVova
2002-08-30 14:08
2002.10.31
Получить BROADCAST


14-101445
Карлсон
2002-10-09 17:37
2002.10.31
опять про ВУЗы :)


3-101127
Fran
2002-10-10 09:33
2002.10.31
Переход с IBX 4.52 на IBX 5.03 - нет свойства QInsert и т.п.


14-101481
RV
2002-10-11 08:35
2002.10.31
Странного Прохожего - с днем варенья!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский