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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
15-1302502293
OW
2011-04-11 10:11
2011.07.31
Как они загружают EXE в temporary internet file и запускают их?


15-1302785404
И. Павел
2011-04-14 16:50
2011.07.31
Применение css только на часть HTML страницы


1-1261051643
harisma
2009-12-17 15:07
2011.07.31
Название целевой директории в формате DOS


15-1302697009
Иксик
2011-04-13 16:16
2011.07.31
Gource


15-1302506523
DiamondShark
2011-04-11 11:22
2011.07.31
Modernization, innovation, vperde!