У меня есть CTE, который в основном фильтрует данные на основе определенных критериев, дело в том, что после фильтрации мне нужно обновить эти записи, чтобы «исправить» их, но я получаю 4104
в операторе UPDATE
.
Когда я вызываю переменную напрямую, у меня нет проблем, но когда я делаю вычисления, я получаю ошибку, потому что я вызываю переменные из первого и второго запроса.
;WITH CTE AS
(
SELECT ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY timestmp ASC) order,
*
FROM TSTSOLAP T
(
--SECOND QUERY
SELECT 1 FROM TABLE1 T2
WHERE --CONDITIONS MET
t.user_id = t2.id_user AND
T.ID_TIP = T2.ID_TIP AND
T.ID <> t2.ID AND
(T2.BEG BETWEEN T.BEG AND T.END)
OR T2.BEG = T.END
)
)
UPDATE CTE SET STAT=0, END = (T2.END - 1) --HERE IS WHERE I GET THE: Msg 4104, Level 16, State 1, Line 1
WHERE ORDER> 1
GO
Как можноЯ называю несвязанные переменные?
* Код сокращен из-за длины