powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подставить значение 0 если нет данных во второй таблице
54 сообщений из 54, показаны все 3 страниц
Подставить значение 0 если нет данных во второй таблице
    #39655476
ZummeP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прописал следующий запрос:
select s.id, s.skucode, s.name, sum(l.units)
from sku s
left join loads l on l.sku_id = s.id
where s.skucode not like '%z%'
and l.real_loc_id >= 1
and l.status = 'A'
and warehouse_id = 0
group by s.id,
s.skucode,
s.name
Выдает след. инфо:
s.ID s.skucode s.name sum(l.units)
1 534 210w760 Имя 1 6614
2 551 211w320 Имя 2 150
Нужно что бы были еще нулевые значения если в таблице Loads значения s.id из таблицы sku отсутствуют.
Полистав информацию ничего не понял.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655482
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummeP,
убрать в предикат LEFT JOIN
Код: sql
1.
2.
and l.real_loc_id >= 1
and l.status = 'A'
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655494
ZummeP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

Мне немного не понятно, по этому перезадам свой вопрос следующим образом.
Мне нужно чтобы в столбце sum(l.units) было 0 если значений S.id в таблице Loads нет
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655495
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummeP,

SUM(ISNULL(l.units,0))
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655496
ZummeP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

это я пробывал не подходит программа не знает данную функция SQL Developer
Version 6.0.0.840
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655499
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummePTaPaK,

это я пробывал не подходит программа не знает данную функция SQL Developer
Version 6.0.0.840

омг... NVL() и идите в правильную ветку
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655505
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummePTaPaK,

Мне немного не понятно, по этому перезадам свой вопрос следующим образом.
Мне нужно чтобы в столбце sum(l.units) было 0 если значений S.id в таблице Loads нетДля S.id, которых нет, Вы, однако, в WHERE требуете
Код: sql
1.
2.
and l.real_loc_id >= 1
and l.status = 'A'

Поэтому этих записей в результате SELECTа вообще не будет.
Так что сначала сделайте так, как Вам посоветовал TaPaK двумя постами выше.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655547
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKомг... NVL() и идите в правильную веткуCOALESCE. И пусть спрашивает, где удобно...
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655559
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щукина АннаTaPaKомг... NVL() и идите в правильную веткуCOALESCE. И пусть спрашивает, где удобно...
для вас и туалеты наверное не М/Ж а стоя и сидя
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655602
ZummeP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всю голову сломал ничего, не получается.
Он мне попросту не выдает значения ноль так как нет записей во второй таблице
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655609
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummePВсю голову сломал ничего, не получается.
Он мне попросту не выдает значения ноль так как нет записей во второй таблице1. До вас дошло, что вы про Oracle спрашиваете на форуме по MS SQL?
2. Не получается перенести условия из WHERE в ON LEFT JOINа, как вам советовали?
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655611
ZummeP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

То что не там спрашиваю я это понял,
и условия не получается перевести что то не так прописываю
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655614
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummeP,

и какой запрос получился?
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655623
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummeP,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select s.id, s.skucode, s.name, coalesce(sum(l.units),0)
  from sku s
  left join loads l on l.sku_id = s.id
                   and l.real_loc_id >= 1
                   and l.status = 'A'
 where s.skucode not like '%z%'
and warehouse_id = 0--Если это относится к loads - тоже надо перекинуть в джоин
group by s.id,
s.skucode,
s.name
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655624
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummePiap,

То что не там спрашиваю я это понял,
и условия не получается перевести что то не так прописываю
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select s.id, s.skucode, s.name, sum(nvl(l.units,0))
from sku s
left join loads l on l.sku_id = s.id and l.real_loc_id >= 1 and l.status = 'A'
where s.skucode not like '%z%'
and warehouse_id = 0
group by s.id,
s.skucode,
s.name

Если warehouse_id тоже в таблице loads , то и and warehouse_id = 0 тоже в ON перенести
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39655627
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummeP,

кстати, надо ВСЕГДА писать алиас таблицы (для ясности и сокращения количества ошибок)
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656077
ZummeP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за помощь, но в итоге сделал все через макрос в Excel.
Но есть одно, в полученной таблице у меня есть единицы измерения (ЕИ) "UNIT", "UPAK" и "КГ" так же в соседней колонке есть "вес нетто"
Мне нужно чтобы в колонке кол-во при условии что ЕИ UPAK и КГ был вес нетто умноженный на кол-во.
Это то что я написал в макросе:
"select sku.id,sku.skucode,sku.name,sum(nvl(v_rs2_current_stock13d.qty,0)) qty,sku.uom,sku.weight_netto " & _
"from sku left join v_rs2_current_stock13d on v_rs2_current_stock13d.sku_id=sku.id and nvl(v_rs2_current_stock13d.warehouse_id, 100) not in (1, 2) " & _
"where nvl(v_rs2_current_stock13d.warehouse_id, 100) not in (1, 2) and sku.id>0 and ((upper(SUBSTR(trim(sku.skucode),4,1)) like '%W%' " & _
"or upper(SUBSTR(trim(sku.skucode),4,1)) like '%V%' " & _
"or upper(SUBSTR(trim(sku.skucode),4,1)) like '%R%' " & _
"and SUBSTR(sku.skucode,8,1) is null) or v_rs2_current_stock13d.qty>0) " & _
"group by sku.id,sku.skucode,sku.name,sku.uom,sku.weight_netto order by skucode;"
Получилось:
SKU Артикул Наименование товара кол-во ЕИ Вес нетто
133128 *w* Печенье 44 upak 5
Если кто то знает как это можно сделать то напишите пожалуйста пример если нет то будем выходит с помощь формул. и в дальнейшем через фильтрацию
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656082
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummeP,

Excel,конечно, MS
но не MS SQL.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656096
ZummeP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А возможно ли это сделать оператором CASE
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656097
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummeP,

конечно
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656105
ZummeP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посетитель,

не могли пример написать а то что то пока не могу разобраться по инфо в инете?
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656181
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZummeP,

пример оператора case?
легко

Код: sql
1.
case when x=y and z>5 then a*b else c end
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656188
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKSUM(ISNULL(l.units,0))
Правильнее isnull(sum), а не sum(isnull).
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656207
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.TaPaKSUM(ISNULL(l.units,0))
Правильнее isnull(sum), а не sum(isnull).
какие ваши смешные доказательства этого бреда?
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656238
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отключенные мозги — вот это смешно.
А указанная рекомендация — это логично.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656242
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Отключенные мозги — вот это смешно.
А указанная рекомендация — это логично.
вы бесполезны
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656246
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B. это логично.

шо ж вы сразу с козырей то?
может, есть таки разумное объяснение, чем в данном конкретном случае один вариант "логичен", а второй - нет?
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656270
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетительможет, есть таки разумное объяснение, чем в данном конкретном случае один вариант "логичен", а второй - нет?
В одном случае isnull применяется ко всем значениям группы, в другом случае isnull применяется только один раз в группе.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656275
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Посетительможет, есть таки разумное объяснение, чем в данном конкретном случае один вариант "логичен", а второй - нет?
В одном случае isnull применяется ко всем значениям группы, в другом случае isnull применяется только один раз в группе.
по вашему "логично" получать всегда сумму 0 когда есть хоть один NULL для необязательного параметра выборки? Чем хуже ваша логика, тем интереснее следствия :)
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656277
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Посетительможет, есть таки разумное объяснение, чем в данном конкретном случае один вариант "логичен", а второй - нет?
В одном случае isnull применяется ко всем значениям группы, в другом случае isnull применяется только один раз в группе.В каком случае результат функции SUM() будет равен NULL?
Что будет, если некоторые из слагаемых в SUM() будут равны NULL?
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656318
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapЧто будет, если некоторые из слагаемых в SUM() будут равны NULL?
null при суммировании игнорируется. Если все слагаемые null, то и сумма будет null. В этом случае isnull(sum(fld),0)=0.
Если использовать sum(isnull(fld,0)), то результат будет такой же.
Какая-то разница (и какой-то смысл) мог быть при count, но не при sum.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656324
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мдяб Alibek B. вы планы сравнивали (не визуально)?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 select  ISNULL(sum(x.i),10) 
  from (
    select i = 10
	union all
	select i =20
	union all
	select i= cast(NULL as int)
  ) x

 
  select  sum(isnull(x.i, 10))
  from (
    select i = 10
	union all
	select i =20
	union all
	select i= cast(NULL as int)
  ) x
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656335
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.iapЧто будет, если некоторые из слагаемых в SUM() будут равны NULL?
null при суммировании игнорируется. Если все слагаемые null, то и сумма будет null. В этом случае isnull(sum(fld),0)=0.
Если использовать sum(isnull(fld,0)), то результат будет такой же.
Какая-то разница (и какой-то смысл) мог быть при count, но не при sum.Не просто проигнорируются.
Вернётся предупреждение, что значения NULL были проигнорированы.
И это сообщение не получится подавить.
Некоторые приложения такого рода сообщения трактуют как ошибку в запросе.
Мне не раз приходилось сталкиваться с этим. Поэтому всегда предпочитаю применять ISNULL(Field,0) внутри SUM().
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656347
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критерий истины — практика.
http://sqlfiddle.com/#!18/bf804/1/0
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656360
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapНе просто проигнорируются.
Вернётся предупреждение, что значения NULL были проигнорированы.
И это сообщение не получится подавить.
Некоторые приложения такого рода сообщения трактуют как ошибку в запросе.

ИМХО слишком условная причина.
Я с MSSQL работал достаточно давно, но мне сложно представить, чтобы информационные сообщения клиент интерпретировал как ошибку запроса.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656384
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot iap]Alibek B.пропущено...
Вернётся предупреждение, что значения NULL были проигнорированы.
И это сообщение не получится подавить.


эммм
Код: sql
1.
set ansi_warnings off


отменили?

Alibek B.Критерий истины — практика.


и в чем же истина заключается в вашем примере
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656390
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Критерий истины — практика.
http://sqlfiddle.com/#!18/bf804/1/0
и вы своей практикой в итоге получите

Код: sql
1.
2.
3.
4.
5.
WITH A(A,B) AS (SELECT CAST(NULL as int),1 UNION ALL SELECT NULL,1 )
SELECT 
	ISNULL(SUM(a+ b),0),
	SUM(ISNULL(a,0)) + SUM(ISNULL(b,0))
FROM A;
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656393
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетительи в чем же истина заключается в вашем примере
sum(isnull(fld,0)) и isnull(sum(fld),0) дают одинаковый результат для любых int.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656396
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKи вы своей практикой в итоге получите
Код: sql
1.
2.
3.
4.
5.
WITH A(A,B) AS (SELECT CAST(NULL as int),1 UNION ALL SELECT NULL,1 )
SELECT 
	ISNULL(SUM(a+ b),0),
	SUM(ISNULL(a,0)) + SUM(ISNULL(b,0))
FROM A;


На какие только изощрения не идут люди, лишь бы свою проявленную глупость скрыть.
Откуда в примере взялась сложение двух полей?
Если isnull(sum(a+b),0), то почему не sum(isnull(a+b),0)?
Не нужно так сову на глобус натягивать, ей больно.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656397
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.TaPaKи вы своей практикой в итоге получите
Код: sql
1.
2.
3.
4.
5.
WITH A(A,B) AS (SELECT CAST(NULL as int),1 UNION ALL SELECT NULL,1 )
SELECT 
	ISNULL(SUM(a+ b),0),
	SUM(ISNULL(a,0)) + SUM(ISNULL(b,0))
FROM A;


На какие только изощрения не идут люди, лишь бы свою проявленную глупость скрыть.
Откуда в примере взялась сложение двух полей?
Если isnull(sum(a+b),0), то почему не sum(isnull(a+b),0)?
Не нужно так сову на глобус натягивать, ей больно.
вы есполезны
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656398
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетительотменили?
Код: sql
1.
SET ANSI_WARNINGS ON;

обязательно во многих случаях.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656400
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.лишь бы свою проявленную глупость скрытьСам-то умником себя считаешь, а?
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656401
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.sum(isnull(fld,0)) и isnull(sum(fld),0) дают одинаковый результат для любых int.
но разный план исполнения
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656403
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxно разный план исполнения
Да. И почти наверняка для последнего случая план будет лучше.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656408
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Maxxно разный план исполнения
Да. И почти наверняка для последнего случая план будет лучше.
1. ето легко проверяеться
2. вы не правы
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656413
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня MSSQL нет, чтобы проверить.
И мне сложно представить, что выгоднее N раз вычислить функцию внутри группы, чем 1 раз снаружи группы.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656418
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ну так Вы балабол батенька, больше вопросов не имею
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656435
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxно разный план исполнения
Кстати, а почему?
Разве выражения в select хоть как-то влияют на план выполнения?
Во всяком случае в Oracle и MySQL нет никакой разницы между sum(nvl) или nvl(sum).
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656444
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
1. как сказано - план, или по вашему "игнорирует" по волшебству?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
--SET SHOWPLAN_ALL ON     select  ISNULL(sum(x.i),0)     from (      select i = 10   union all   select i =20   union all   select i= cast(NULL as int)    ) x
  |--Compute Scalar(DEFINE:([Expr1005]=isnull([Expr1004],(0))))
       |--Compute Scalar(DEFINE:([Expr1004]=CASE WHEN [Expr1006]=(0) THEN NULL ELSE [Expr1007] END))
            |--Stream Aggregate(DEFINE:([Expr1006]=COUNT_BIG([Union1003]), [Expr1007]=SUM([Union1003])))
                 |--Constant Scan(VALUES:(((10)),((20)),(NULL)))
 select  sum(isnull(x.i, 0))    from (      select i = 10   union all   select i =20   union all   select i= cast(NULL as int)    ) x
  |--Compute Scalar(DEFINE:([Expr1004]=CASE WHEN [Expr1005]=(0) THEN NULL ELSE [Expr1006] END))
       |--Stream Aggregate(DEFINE:([Expr1005]=Count(*), [Expr1006]=SUM(isnull([Union1003],(0)))))
            |--Constant Scan(VALUES:(((10)),((20)),(NULL)))



2.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH A(B) AS
(
SELECT 1
)
SELECT
        SUM(ISNULL(B,0)) AS Sales,
        ISNULL(SUM(B),0) AS Sales
FROM     A    
WHERE 1=0



3. Warning который спамит во все стороны, для джобов это отдельное веселье

4. Потенциально вы всегда должны помнить что же выбрать ISNULL(SUM()) или SUM(ISNULL()) из за того что внетри суммы.

5. Вы бесполезны
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656455
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKВы бесполезны
Не нервничайте, корвалол попейте.
Ляпнули глупость публично, не хватило духу признать, начали юлить.
Бывает. Видны задатки журналиста.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656471
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.TaPaKВы бесполезны
Не нервничайте, корвалол попейте.
Ляпнули глупость публично, не хватило духу признать, начали юлить.
Бывает. Видны задатки журналиста.

авторПравильнее isnull(sum), а не sum(isnull).
ответ - нет, или вы ещё не согласны
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656569
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
Код: sql
1.
SET ANSI_WARNINGS ON;

обязательно во многих случаях.

ворнинги обязательны, но конкретно этот - прям будет поперек горла стоять :)

Alibek B.sum(isnull(fld,0)) и isnull(sum(fld),0) дают одинаковый результат для любых int.


Так вы же речь то завели не про одинаковость, а про предпочтительность.
соответственно, и обосновывать надо именно свое утверждение.
пример никак ваше утверждение не подтверждает.
а на других вы при этом кидаетесь, что они глупости ляпают
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656658
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетительпример никак ваше утверждение не подтверждает
Этот пример в первую очередь показывает идентичность результатов, sum(isnull(fld,0))=isnull(sum(fld),0), в ответ на 21472158 . К этому, надеюсь, возражений нет?
Что касается предпочтительности и логичности, то этот вывод основан на том, что функция внутри агрегирующей функции будет применяться к каждому значению, а снаружи будет применяться только один раз к результату агрегирующей функции. Это как-бы развитие обычной рекомендации выносить постоянные части вычислений за пределы цикла.
...
Рейтинг: 0 / 0
Подставить значение 0 если нет данных во второй таблице
    #39656678
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
авторчто функция внутри агрегирующей функции будет применяться к каждому значению, а снаружи будет применяться только один раз к результату агрегирующей функции.
план недостаточно точно опровергает это?
...
Рейтинг: 0 / 0
54 сообщений из 54, показаны все 3 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подставить значение 0 если нет данных во второй таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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