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

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

Хелп! не проходит Update, выдает ошибку: The multi-part identifier "tt.us1" could not be bound. Но почему он не видит tt.us1?

update DB_User set auto_card = (
select  tt.auto_card from (
select  distinct card.auto_card, user_fio.Пользователь as us1 --, card.Full_Name, * 
from user_fio
left join DB_User on db_user.db_user_realname = user_fio.Пользователь
left join card on card.Full_Name = user_fio.displayName
where card.auto_card not in (5679,12243, 7597,17293 ))tt
)where db_user.db_user_realname = tt.us1
26 окт 12, 14:39    [13380567]     Ответить | Цитировать Сообщить модератору
 Re: Не получается Update :-(  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
AlenaRo,

боюсь, здесь не хватит места, чтобы просто перечислить все ошибки в этом UPDATEе
Например, почему у внешнего подзапроса не задан алиас?
Нет, нет, это ниччего не исправит, но всё же... Сервер, кстати, до этого ещё не дошёл.

А почему снаружи должны быть видны алиасы, заданные внутри подзапроса?
26 окт 12, 14:50    [13380645]     Ответить | Цитировать Сообщить модератору
 Re: Не получается Update :-(  [new]
Добрый Э - Эх
Guest
AlenaRo,

друже, с такими "запросами" - тебе прямая дорога к MERGE.
26 окт 12, 15:09    [13380799]     Ответить | Цитировать Сообщить модератору
 Re: Не получается Update :-(  [new]
user89
Member

Откуда:
Сообщений: 2083
AlenaRo,

можно еще попробовать Update с "предварительным просмотром".
Например
;with tmp as (
 select old_val, new_val
 from Table1 inner join Tabel2
 ...
)
select old_val, new_val
--update tmp set old_val = new_val

Если всё устраивает, то блок
select old_val, new_val
--update tmp set old_val = new_val
меняем на
--select old_val, new_val
update tmp set old_val = new_val
26 окт 12, 15:27    [13380960]     Ответить | Цитировать Сообщить модератору
 Re: Не получается Update :-(  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
AlenaRo,

UPDATE DB_User 
SET auto_card = (
                SELECT  TOP 1 [card].auto_card
                FROM user_fio            
                    INNER JOIN [card] 
                    ON [card].Full_Name = user_fio.displayName
                    AND [card].auto_card NOT IN (5679, 12243, 7597, 17293)
                    AND user_fio.Пользователь = d.db_user_realname
                ORDER BY [card].auto_card DESC                    
                ) 
FROM DB_User d 

Пробовать только на тестовых данных (копии таблицы) !
26 окт 12, 15:35    [13381031]     Ответить | Цитировать Сообщить модератору
 Re: Не получается Update :-(  [new]
AlenaRo
Member

Откуда:
Сообщений: 21
trew,

Спасибо, что вы есть на этом свете! И спасибо за ответ! Все получилось *-)
26 окт 12, 16:23    [13381419]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить