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

日付の違いで同じ FK の上位 1 つのレコードを取得する

    アイデアは次のとおりです

    • すべてのを選択 可能な限り最小の (親) ID で 1 時間以内に注文します。 (ここでは、最小の OrderID が 最も古い であると想定しています 注文ID).
    • これらの結果を元の表と結合します。
    • これらの結果を更新ステートメントの基礎として使用してください。

    SQL ステートメント

    UPDATE  Orders
    SET     ParentOrderID = p.ParentOrderID
    FROM    Orders o
            INNER JOIN (
              SELECT  ParentOrderID = MIN(o1.OrderID), OrderID = o2.OrderID
              FROM    Orders o1
                      LEFT OUTER JOIN Orders o2 ON 
                        o2.CustomerID = o1.CustomerID
                        AND o2.OrderDate > o1.OrderDate
                        AND DATEADD(hh, -1, o2.OrderDate) < o1.OrderDate
              GROUP BY o2.OrderID
            ) p ON p.OrderID = o.OrderID
    


    1. Django ConnectionAbortedError:[WinError10053]確立された接続がホストマシンのソフトウェアによって中止されました

    2. SQLServerで削除されたレコードを復元するノウハウ

    3. C#でMysqlDBに接続する-データセットでいくつか必要

    4. 1つのテーブルに複数の主キーが存在できますか?