2010-01-07 2 views
0

Есть ли лучший способ написать следующий простой отчет об обновлении SQL Server 2005? Это просто кажется немного грязным неэффективным.Обновить поле из другой таблицы

UPDATE QuotationItem 
SET  Recurring_Cost = 
      (SELECT TOP (1) Recurring_Cost 
      FROM   Products 
      WHERE  (Remote_ID = QuotationItem.Product_ID)) 
WHERE  (Quotation_ID = 115) 

Спасибо,

Ник

ответ

0

Является ли ваш TOP 1 действительно необходимо? Если это так, поскольку вы не указали заказ, у вас есть довольно случайные результаты из вашего запроса в любом случае! Если это на самом деле не нужно, это будет делать:

UPDATE q 
SET  Recurring_Cost = p.RecurringCost 
FROM QuotationItem q 
     INNER JOIN 
       Products p 
       ON p.Remote_ID = q.Product_ID 
WHERE q.Quotation_ID = 115 
2

Как об использовании присоединиться

UPDATE QuotationItem 
SET Recurring_Cost = p.recurring_cost 
FROM QuotationItem q join Products p on q.Product_ID = p.Remote_ID 
WHERE q.Quotation_ID = 115 
Смежные вопросы