2013-06-10 1 views
1
UPDATE PHYS_COUNT_TAG 
SET COUNT_QTY = (
     SELECT qty 
     FROM MC_PART_LOCATION 
     WHERE MC_PART_LOCATION.part_id = PHYS_COUNT_TAG.PART_ID 
      AND MC_PART_LOCATION.location_id = PHYS_COUNT_TAG.LOCATION_ID 
    ) 

Приведенный выше код не работает. На исполнении я получаю ошибку:Операция обновления из другой таблицы с несколькими критериями

Msg 4104, Level 16, State 1, Line 4 
The multi-part identifier "PCT.PART_ID" could not be bound. 
Msg 4104, Level 16, State 1, Line 5 
The multi-part identifier "PCT.LOCATION_ID" could not be bound. 
+2

Дать во всех шапках, не будет никакой пользы. – vidit

+0

жаль, что я НЕ собирался писать в кепках. Я работаю в кепках на моем рабочем компьютере из-за требований, это был несчастный случай :) спасибо – user194440

ответ

3

Попробуйте это (T-SQL) -

UPDATE p 
SET COUNT_QTY = l.qty 
FROM PHYS_COUNT_TAG p 
JOIN MC_PART_LOCATION l ON l.part_id = p.PART_ID 
    AND l.location_id = p.LOCATION_ID 
+0

Спасибо - он обновил 1061 запись, но не может понять, почему он уходит 40? Я сделал выбор с теми же основными критериями, и есть еще? – user194440

+0

# 1. Возможно, потому что у вас нет индекса для столбцов объединения. # 2. Да, конечно. – Devart

Смежные вопросы