sql >> データベース >  >> RDS >> Sqlserver

Join と Group By を使用してステートメントを更新する

    次のように、サブクエリ内でグループを配置してから、「JobOrderID」で結合することができます:

    UPDATE J
    SET J.StatusID = A.statusId
    FROM MKT_JobOrder J
    INNER JOIN (
        SELECT J.JobOrderID
            , CASE 
                WHEN SUM(DUV.VendorDUQuantity) = SUM(RD.InvoiceQuantity)
                    THEN 1
                ELSE J.StatusID
                END AS statusId 
        FROM PLN_DU_Vendor DUV
        INNER JOIN ENG_Release R ON R.ReleaseID = DUV.ReleaseID
        INNER JOIN ENG_DU_Header H ON H.ReleaseID = R.ReleaseID
                                   AND DUV.DUID = H.DUID
        INNER JOIN MKT_JobOrder J ON J.JobOrderID = R.JobOrderID
        INNER JOIN MKT_CustomerOrder CO ON CO.OrderID = J.OrderID
        LEFT JOIN PMT_RFDHeader RH ON RH.JobOrderID = J.JobOrderID
        LEFT JOIN PMT_RFDDetail RD ON RD.RFDID = RH.RFDID
                                   AND RD.DUID = DUV.DUID
        WHERE CO.OrderID = 100
        GROUP BY J.JobOrderID
               , J.StatusID
        ) A ON J.JobOrderID = A.JobOrderID
      

    1. MySQLでrow_numberを取得する方法

    2. シリアル番号を作成したい

    3. オフラインWebアプリケーションに2つの異なるデータベースを使用することは可能ですか?

    4. xp_cmdshellがSQLServer2012で機能しないのはなぜですか?