0
PIテーブルから選択するLCID、LCNo、AmendmentStatusという3つの列を更新したいので、次の更新クエリを書き込んでいます:SQL Update複数の列から値が取得され、単一のクエリとして別のテーブルから取得するクエリ
UPDATE #TempTableOne
SET
LCID=(SELECT ISNULL(ExportLCID,0) FROM ExportLC WHERE ExportLCID= (SELECT LCID FROM [PI] WHERE PIID=(SELECT PIID FROM Job WHERE JobID=TT.OrderID))),
LCNo=(SELECT ISNULL(ExportLCNo,'') FROM ExportLC WHERE ExportLCID= (SELECT LCID FROM [PI] WHERE PIID=(SELECT PIID FROM Job WHERE JobID=TT.OrderID))),
AmendmentStatus=(SELECT AmendmentStatus FROM ExportLC WHERE ExportLCID= (SELECT LCID FROM [PI] WHERE PIID=(SELECT PIID FROM Job WHERE JobID=TT.OrderID))),
FROM #TempTableOne AS TT
WHERE TT.OrderType=3
しかし、それは可能な更新クエリのようにのような単一のクエリを実行している:私はより速く私のクエリあなたQUERを変更
私はのように同じように集計関数を使用する場合:yは、多くのより速く、それをしなければならJOINSオフ動作するようにPIQty =(ISNULL(SUM(数量)を選択し、0)PIProducts FROM WHERE PIID =(のジョブからPIIDを選択(SELECT ID = TT.OrderID)AND ProductID = TT.ProductID)、 \t - SampleAdjQty =(SELECT ISNULL(SUM(AdjQty)、0)PIProductsからPIID =(ジョブIDをJobID = TT.OrderIDのジョブから選択します)AND (ProductID = TT.ProductID)、 \t - SampleAdjValue =(SELECT ISNULL(SUM(AdjValue)、0)PIIP = WHERE PIID =(ジョブIDをJobID = TT.OrderIDから選択します)AND ProductID = TT.ProductID)から –