1

#temp注文の詳細を含むテーブルがあります。

OrderID     CustomerID  DeliveredBy
1           10          12
2           13          14
3           15          14

列を持つ@Orders テーブル変数 (この段階では特定の注文番号のみが含まれていますが、DeliveryDetails の顧客の ID は含まれていません) があります。

OrderID     CustomerName    DeliveredByName
1
2
3

(あくまで一例です)

テーブルにあるIDで@Ordersテーブルを更新する必要がありますCustomerName,DeliveredByName#temp

Update @Orders
set 
    CustomerName = c.Name,
    DeliveredByName = d.Name
from @Orders o1
         join #temp t                on o1.OrderID = t.OrderID
    left join Customers c on o1.CustomerID = c.CustomerID    
    left join DeliveryDetails d on o1.DeliveredByID = d.DeliveredByID

しかし、エラーが発生します:

「更新」の近くで、条件が予想されるコンテキストで指定された非ブール型の式。

4

1 に答える 1

2

にエイリアスを指定したため@orders、update 句でそれを使用する必要があります。それ以外の場合は、そのエイリアスを削除します。代わりにこれを試してください:

UPDATE o1   <-------- here use UPDATE o1 instead of UPDATE @orders
SET o1.CustomerName    = c.Name,
    o1.DeliveredByName = d.Name
FROM @Orders AS o1
INNER JOIN #temp          AS t ON o1.OrderID       = t.OrderID
LEFT JOIN Customers       AS c ON o1.CustomerID    = c.CustomerID    
LEFT JOIN DeliveryDetails AS d ON o1.DeliveredByID = d.DeliveredByID;
于 2013-02-13T07:07:04.920 に答える