powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сложение полей с NULL
14 сообщений из 14, страница 1 из 1
Сложение полей с NULL
    #37365820
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется таблица abc с полями a, b, c типа nvarchar(50)

Пишу запрос:
Код: plaintext
1.
2.
UPDATE abc
Set a = b+c

После выполнения запроса в тех строках, в которых хотя бы одно из полей b или c имело значение NULL, в поле a записывается NULL.

Вопрос:
как изменить запрос, чтобы в поле а записывалось не NULL, в случае, если одно из полей в или с не NULL?

[b]Примечание: [/b] как в общем случае сделать подобный запрос, если полей гораздо больше.


Спасибо!
Евгений Боуден
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37365827
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
isnull(b,0)

???
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37365828
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybe, посмотрите функцию ISNULL
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37365830
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
IsNull
?
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37365843
evgenybeкак в общем случае сделать подобный запрос, если полей гораздо больше. http://msdn.microsoft.com/ru-ru/library/ms190349.aspx
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сложение полей с NULL
    #37947233
semauxin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос тот же, но условие немного другое


Допустим есть 3 поля в таблице TableAll: Summa1, Summa2, Summa3 (суммы вычисленные из 3-х разных таблиц Table1, Table2, Table3) и одно поле SummaAll в которой вычисляется сумма всех этих полей.
Summa1 + Summa2 + Summa3 = SummaAll - поле SummaAll принимает значение только тогда, когда Summa1 > 0, Summa2 > 0, Summa3 > 0
А если одно из полей (Summa1) = 0, то и SummaAll тоже = 0...
Как написать формулу, чтобы в любом случае сложение происходило?
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37947254
Alexandr Kr.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
semauxinВопрос тот же, но условие немного другое


Допустим есть 3 поля в таблице TableAll: Summa1, Summa2, Summa3 (суммы вычисленные из 3-х разных таблиц Table1, Table2, Table3) и одно поле SummaAll в которой вычисляется сумма всех этих полей.
Summa1 + Summa2 + Summa3 = SummaAll - поле SummaAll принимает значение только тогда, когда Summa1 > 0, Summa2 > 0, Summa3 > 0
А если одно из полей (Summa1) = 0, то и SummaAll тоже = 0...
Как написать формулу, чтобы в любом случае сложение происходило?

А вы внимательно прочитали пост?
и как понимать эту часть?
semauxinА если одно из полей (Summa1) = 0, то и SummaAll тоже = 0...
ведь вроде как пока что 1+1+0 не является 0.
А если вопрос тосит про null, то ответ дан уже выше.
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37947290
semauxin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexandr Kr.,

IsNull не работает. Говорит что недостаточно аргументов.
Вот конкретный пример
SELECT Nomer, (ISNULL(SummaPriceTextileCalc,0) + ISNULL(SummaPriceLightCalc,0) + ISNULL(SummaPraicMebelCalc,0)) FROM qdfZakaziFlat
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37947302
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выкиньте ваше приложение, которое показывает эту ошибку. Запрос компилится.
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37947306
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или крайние скобки уберите.
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37947678
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semauxinSumma1 + Summa2 + Summa3 = SummaAll - поле SummaAll принимает значение только тогда, когда Summa1 > 0, Summa2 > 0, Summa3 > 0
А если одно из полей (Summa1) = 0, то и SummaAll тоже = 0...

ту вообще-то и case нужен, для таких условий
как-то так
Код: sql
1.
2.
3.
4.
case 
  when isnull(Summa1, 0) = 0 then 0
  when isnull(Summa1, 0) > 0 and isnull(Summa2, 0) > 0 and isnull(Summa3, 0) > 0 then isnull(Summa1, 0) + isnull(Summa2, 0) + isnull(Summa3, 0)
end
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37947694
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotту вообще-то и case нужен, для таких условийТут непонятно, что semauxin имел в виду - описал ошибку, или сказал, что ему надо :-)

Поразительные способности объяснть задачу :-)
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37948587
SunJun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
isnull(a,0) + isnull(b,0) .........
...
Рейтинг: 0 / 0
Сложение полей с NULL
    #37948643
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
судя по ошибке тут - 13126356
у автора Акцесс (или, по крайней мере, запрос выполняет Jet) и он просто заблудился
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сложение полей с NULL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]