Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Null Value eliminated  [new]
dermama
Member

Откуда:
Сообщений: 226
КОллеги добрый день.

Процедура работает не корректна. Однако значение вставляется в таблицу , если запускать ее посредством EXEC,
Однако значение не вставляется в таблицу если процедура запускается посредством JOBa

ALTER PROC record_new_date
AS
BEGIN

DECLARE @d datetime
SELECT @d = MAX (InDateTime) FROM server1.table1


INSERT INTO server1.table2
(
date,
balanceID,
InDateTIme
)
SELECT t1, *
FROM server1.table1       t1
LEFT JOIN server1.table2 t2     ON t1.indatetime = t2.indatetime
WHERE t1.indatetime = @d AND t2.indatetitme IS NULL

END
GO


Если просто выполнить часть кода

DECLARE @d datetime
SELECT @d = MAX (InDateTime) FROM server1.table1
PRINT @d

то появляется сообщение WARNING null value is eliminated by an aggregate or other SET operation
SEP 16 2019 2:10 PM

как видно дату выводит но с предупреждением. Подскажите пожалуйста, что может быть???

Если простов ыполнить процедуру то она запишет значение в таблице, но также выдаст предупреждение, а через джоб даже не записываетю

Заранее благодарен.

Сообщение было отредактировано: 16 сен 19, 15:44
16 сен 19, 14:44    [21971680]     Ответить | Цитировать Сообщить модератору
 Re: Null Value eliminated  [new]
Konst_One
Member

Откуда:
Сообщений: 11522
SELECT TOP (1) @d = InDateTime FROM server1.table1 ORDER BY InDateTime DESC
16 сен 19, 14:49    [21971687]     Ответить | Цитировать Сообщить модератору
 Re: Null Value eliminated  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
SELECT @d = MAX (InDateTime) FROM server1.table1 where InDateTime is not null
16 сен 19, 15:43    [21971740]     Ответить | Цитировать Сообщить модератору
 Re: Null Value eliminated  [new]
dermama
Member

Откуда:
Сообщений: 226
Konst_One
SELECT TOP (1) @d = InDateTime FROM server1.table1 ORDER BY InDateTime DESC

Добрый день. Такой вариант не подходит так как в таблице следующие значения

Date balanceID InDateTIme
2019-09-16 NULL NULL
2019-09-15 NULL NULL
2019-09-14 2100 2019-09-16 14:10:36:037

и по вашему запросу я получаю NULL , а необходимо залогировать значение 2019-09-16 14:10:36:037 (MAX(InDateTime)


Небольшое уточнение. На другом сервере эта процедура работает отлично. С той лишь разницей, что запись идет в другую тблицу - столбцы одни и теже, процедура такая же.
16 сен 19, 15:46    [21971746]     Ответить | Цитировать Сообщить модератору
 Re: Null Value eliminated  [new]
dermama
Member

Откуда:
Сообщений: 226
Lepsik
SELECT @d = MAX (InDateTime) FROM server1.table1 where InDateTime is not null



Коллега, благодарю - работает прекрасно.
16 сен 19, 15:48    [21971749]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить