Главная страница
    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.01 c
1-101228
Arhangel
2002-10-21 18:57
2002.10.31
В чем дело не могу понять?:(


1-101260
Юра
2002-10-22 11:51
2002.10.31
Правильное завершение работы своего приложения


4-101584
Super
2002-09-19 22:51
2002.10.31
Application.Handle других процессов


4-101595
Diamond Cat
2002-09-17 01:33
2002.10.31
Регионы


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





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