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

Вниз

TSQL вычитание NULLa   Найти похожие ветки 

 
DelphiN!   (2011-04-14 12:02) [0]

Доброго времени суток!
Помогите решить проблему, есть таблица
    TABLE1
VALUE_         TYPE_
1                   T1
2                   T2

И запрос

select sum(value_)
-
(select sum(value_) from table1 where type_ = "T3")

from table1 where (type_ = "T1")or(type_ = "T2")

Результат запроса - NULL, как сделать чтобы он был равен 3 ((1+2)-0)?


 
DelphiN!   (2011-04-14 12:21) [1]

Нашел решение,
select sum(value_)
-
COALESCE((select sum(value_) from table1 where type_ = "T3"),0)

from table1 where (type_ = "T1")or(type_ = "T2")

всем спасибо


 
Sergey13 ©   (2011-04-14 12:22) [2]

ISNULL?


 
turbouser ©   (2011-04-14 12:34) [3]

Какой нафиг TSQL в FB??


 
DelphiN!   (2011-04-14 12:37) [4]


> turbouser ©   (14.04.11 12:34) [3]


опшибся, сорри )


 
Кщд   (2011-04-15 06:32) [5]

>DelphiN!   (14.04.11 12:02)  
лучше за один проход:

select coalesce(
                    case t.type_
                      when "T3" then - t.value_
                      else t.value_
                    end,
                    0
                    )
from table1 t where t.type_ in ("T1", "T2", "T3")


 
Anatoly Podgoretsky ©   (2011-04-15 15:32) [6]


> TSQL вычитание NULLa [FireBird 2.1.1]

А где вычитание в приведеном коде


 
Palladin ©   (2011-04-15 15:49) [7]

Поле, которому разрешено быть null, конечно может учавствовать в вычислениях. Но сам по себе null уже говорит о том что значения НЕТ, а если значения нет, то и результатов вычисления НЕТ. Или убирай null и заменяй по человечески нулем, или уж прими null  в результатах.


 
KSergey ©   (2011-04-18 15:55) [8]

добавить

where value_ is not null


 
shpigel ©   (2011-04-19 18:26) [9]

добавь ISNULL перед операцией SUM. т.е.:

select sum(ISNULL(value_ , 0))
-
(select sum(ISNULL(value_ , 0)) from table1 where type_ = "T3")

from table1 where (type_ = "T1")or(type_ = "T2")


 
Кщд   (2011-04-25 07:12) [10]

>shpigel ©   (19.04.11 18:26) [9]
решение уже было дано
но раз уж так неймется, то что будет, если этот запрос:

select sum(ISNULL(value_ , 0)) from table1 where type_ = "T3"

возвращает 0 записей?



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

Форум: "Начинающим";
Текущий архив: 2011.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
2-1303478474
Handle
2011-04-22 17:21
2011.07.31
как хранить данные


15-1302638629
Kerk
2011-04-13 00:03
2011.07.31
"Первая орбита"


15-1302303058
Германн
2011-04-09 02:50
2011.07.31
Build vs Compile


15-1302588303
OW
2011-04-12 10:05
2011.07.31
Задача определения региона по номеру позвонившего


15-1302679023
NailMan
2011-04-13 11:17
2011.07.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский