Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
Здравствуйте!

Запрос:
SELECT 
	s.N_Code
	, Squar.N_Square as Общая
	, CONVERT(Decimal(10,2), u.total_square) as total_square
FROM Temp_IF_update_rooms_reg_square u
JOIN dbo.SD_Subscr s
	on u.nom_ls = s.N_Code
JOIN dbo.ED_Registr_Pts RP
	ON S.F_Division	= RP.F_Division 
	AND S.LINK = RP.F_Subscr
JOIN dbo.ED_Network_Pts NP
	ON NP.LINK = RP.F_Network_Pts
JOIN dbo.SD_Conn_Points CP										
	ON CP.LINK	= NP.F_Conn_Points
JOIN [dbo].[SD_Contract_Squares]  Squar
	ON Squar.LINK = CP.F_Conn_Points_Squares
WHERE
	CONVERT(Decimal(10,2), u.total_square) <> Squar.N_Square
	AND s.N_Code = 602040014818

Выдает строку:
автор
602040014818 150.00 75.00

То есть есть расхождения в площадях объектов и надо сделать update, чтобы в Squar.N_Square оказалось значение CONVERT(Decimal(10,2), u.total_square)
Но update:
UPDATE Squar
	SET Squar.N_Square = CONVERT(Decimal(10,2), u.total_square)
FROM Temp_IF_update_rooms_reg_square u
JOIN dbo.SD_Subscr s
	on u.nom_ls = s.N_Code
JOIN dbo.ED_Registr_Pts RP
	ON S.F_Division	= RP.F_Division 
	AND S.LINK = RP.F_Subscr
JOIN dbo.ED_Network_Pts NP
	ON NP.LINK = RP.F_Network_Pts
JOIN dbo.SD_Conn_Points CP
	ON CP.LINK	= NP.F_Conn_Points
JOIN [dbo].[SD_Contract_Squares]  Squar
	ON Squar.LINK = CP.F_Conn_Points_Squares
WHERE
	CONVERT(Decimal(10,2), u.total_square) <> Squar.N_Square
	AND s.N_Code = 602040014818

ничего не обновляет. Возвращается в ответ такое:
автор
Внимание! Значение NULL исключено в агрегатных или других операциях SET.

(1 row affected)

Как все-таки провести update?
18 сен 19, 16:29    [21973387]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54200
Борис Гаркун
ничего не обновляет. Возвращается в ответ такое:
автор
Внимание! Значение NULL исключено в агрегатных или других операциях SET.

(1 row affected)
а что означает строка
(1 row affected)
18 сен 19, 16:33    [21973391]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54200
CONVERT(Decimal(10,2), u.total_square) <> Squar.N_Square

у тебя в обоих сторонах предиката NOT NULL ?
18 сен 19, 16:35    [21973394]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
andreymx
а что означает строка
(1 row affected)

"1 строка затронута" если переводить. Но фактически обновления не происходит(если выполнить первый запрос, он возвращает строку). Как такое может быть?
18 сен 19, 16:36    [21973396]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Борис Гаркун,

это не ошибка, а предупреждение
18 сен 19, 16:36    [21973397]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
TaPaK
Борис Гаркун,
это не ошибка, а предупреждение

Спасибо. А почему не происходит обновления значения в Squar.N_Square?
18 сен 19, 16:38    [21973398]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
andreymx
у тебя в обоих сторонах предиката NOT NULL ?

да. иначе бы не было строки
автор
602040014818 150.00 75.00
18 сен 19, 16:41    [21973400]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Konst_One
Member

Откуда:
Сообщений: 11519
Temp_IF_update_rooms_reg_square - это что у вас? код в студию
18 сен 19, 16:42    [21973402]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
а у вас нет триггера на обновляемой таблице?
18 сен 19, 16:43    [21973404]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
msLex
Member

Откуда:
Сообщений: 8091
Shakill
а у вас нет триггера на обновляемой таблице?

и таблица ли это вообще :)
18 сен 19, 16:44    [21973407]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
Konst_One
Temp_IF_update_rooms_reg_square - это что у вас? код в студию
:
CREATE TABLE [dbo].[Temp_IF_update_rooms_reg_square](
	[LINK] [int] IDENTITY(1,1) NOT NULL,
	[SESSION_ID] [uniqueidentifier] NULL,
	[1] [varchar](8000) NULL,
	[nom_ls] [varchar](8000) NULL,
	[adres] [varchar](8000) NULL,
	[fio] [varchar](8000) NULL,
	[date_birth] [varchar](8000) NULL,
	[place_birth] [varchar](8000) NULL,
	[vid_doka] [varchar](8000) NULL,
	[seria] [varchar](8000) NULL,
	[nomer] [varchar](8000) NULL,
	[kem] [varchar](8000) NULL,
	[kod_podr] [varchar](8000) NULL,
	[issue_date] [varchar](8000) NULL,
	[13] [varchar](8000) NULL,
	[14] [varchar](8000) NULL,
	[15] [varchar](8000) NULL,
	[16] [varchar](8000) NULL,
	[17] [varchar](8000) NULL,
	[18] [varchar](8000) NULL,
	[19] [varchar](8000) NULL,
	[20] [varchar](8000) NULL,
	[21] [varchar](8000) NULL,
	[22] [varchar](8000) NULL,
	[total_square] [varchar](8000) NULL,
	[rooms_number] [varchar](8000) NULL,
	[reg_number] [varchar](8000) NULL,
	[26] [varchar](8000) NULL,
	[27] [varchar](8000) NULL,
	[28] [varchar](8000) NULL,
	[serial_number] [varchar](8000) NULL,
	[30] [varchar](8000) NULL,
	[31] [varchar](8000) NULL,
	[32] [varchar](8000) NULL,
	[33] [varchar](8000) NULL,
	[34] [varchar](8000) NULL,
	[35] [varchar](8000) NULL,
	[36] [varchar](8000) NULL,
	[37] [varchar](8000) NULL,
	[38] [varchar](8000) NULL,
 CONSTRAINT [PK_Temp_IF_update_rooms_reg_square] PRIMARY KEY CLUSTERED 
(
	[LINK] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [Data]
) ON [Data]
18 сен 19, 16:44    [21973408]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Борис Гаркун,

непонятно зачем оратору таблица Temp_IF_update_rooms_reg_square , нужно SD_Contract_Squares + наличие триггеров
18 сен 19, 16:47    [21973411]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Konst_One
Member

Откуда:
Сообщений: 11519
попробуйте сначала в переменную получить ваш total_square из этой табличке по nom_ls, а уже в update переменную подставляйте
18 сен 19, 16:49    [21973412]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
msLex
Member

Откуда:
Сообщений: 8091
Konst_One
попробуйте сначала в переменную получить ваш total_square из этой табличке по nom_ls, а уже в update переменную подставляйте


И обязательно выполнять при этом магические па.
18 сен 19, 16:52    [21973415]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Konst_One
Member

Откуда:
Сообщений: 11519
в целях отладки и понимания, что идёт не так
msLex
Konst_One
попробуйте сначала в переменную получить ваш total_square из этой табличке по nom_ls, а уже в update переменную подставляйте


И обязательно выполнять при этом магические па.
18 сен 19, 16:54    [21973418]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
Shakill
а у вас нет триггера на обновляемой таблице?

целых 4. Отключить триггеры на момент update?
18 сен 19, 16:59    [21973423]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
msLex
и таблица ли это вообще :)

таблица
18 сен 19, 17:00    [21973424]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
Konst_One
попробуйте сначала в переменную получить ваш total_square из этой табличке по nom_ls, а уже в update переменную подставляйте

научите как это сделать, пожалуйста
18 сен 19, 17:02    [21973427]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Konst_One
Member

Откуда:
Сообщений: 11519
declare @total decimal(10,2);
set @total = (select CONVERT(Decimal(10,2), u.total_square) FROM Temp_IF_update_rooms_reg_square u where u.nom_ls = '602040014818');
18 сен 19, 17:09    [21973435]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Борис Гаркун
Member

Откуда: Лермонтов
Сообщений: 221
Konst_One, спасибо. Не прошло
18 сен 19, 17:11    [21973439]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
Борис Гаркун
Shakill
а у вас нет триггера на обновляемой таблице?

целых 4. Отключить триггеры на момент update?

ну сначала можно прочитать их и выяснить, происходит ли в них подмена значения N_Square при обновлении
18 сен 19, 17:17    [21973445]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Борис Гаркун
Shakill
а у вас нет триггера на обновляемой таблице?

целых 4. Отключить триггеры на момент update?
Триггеры же сделаны не просто так, а с какой то целью.
Нужно выяснить, зачем они, и, если не нужны, то удалить, а если нужны, то поправить ошибку.
18 сен 19, 17:22    [21973449]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
msLex
Member

Откуда:
Сообщений: 8091
alexeyvg
Борис Гаркун
пропущено...

целых 4. Отключить триггеры на момент update?
Триггеры же сделаны не просто так, а с какой то целью.
Нужно выяснить, зачем они, и, если не нужны, то удалить, а если нужны, то поправить ошибку.

или в действительности никакой ошибки нет, а такой update не должен проходить
18 сен 19, 17:23    [21973452]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
iap
Member

Откуда: Москва
Сообщений: 46981
Борис Гаркун
Shakill
а у вас нет триггера на обновляемой таблице?

целых 4. Отключить триггеры на момент update?
Какие же это триггеры? Секрет? Интересуют-то только на UPDATE.
18 сен 19, 17:35    [21973468]     Ответить | Цитировать Сообщить модератору
 Re: Не проходит UPDATE(Значение NULL исключено в агрегатных или других операциях SET)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
msLex
alexeyvg
пропущено...
Триггеры же сделаны не просто так, а с какой то целью.
Нужно выяснить, зачем они, и, если не нужны, то удалить, а если нужны, то поправить ошибку.

или в действительности никакой ошибки нет, а такой update не должен проходить
Ага, может и так.
18 сен 19, 17:36    [21973470]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить