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

SUMおよびGroupBYを使用したT-SQLの更新

    このクエリが必要な情報を返す場合:

    SELECT *, LINE_TOTAL = SUM(l.LINE_TOTAL) OVER 
        (PARTITION BY l.IC_PO_HEADER, l.RELEASE_NUMBER)
      FROM dbo.PO_HEADER AS h
      INNER JOIN dbo.PO_LINE AS l
      ON h.IC_PO_HEADER = l.IC_PO_HEADER 
      AND h.RELEASE_NUMBER = l.RELEASE_NUMBER;
    

    次に、これはおそらく必要なUPDATEクエリです:

    ;WITH x AS
    (
      SELECT h.TOTAL, lt = SUM(l.LINE_TOTAL) OVER 
        (PARTITION BY l.IC_PO_HEADER, l.RELEASE_NUMBER)
      FROM dbo.PO_HEADER AS h
      INNER JOIN dbo.PO_LINE AS l
      ON h.IC_PO_HEADER = l.IC_PO_HEADER 
      AND h.RELEASE_NUMBER = l.RELEASE_NUMBER
    )
    UPDATE x SET TOTAL = lt;
    

    私はゴードンに同意する必要があります、あなたのグループ化は非常に奇妙に思えます。正しく理解できたかどうかはわかりません(そのため、最初にSELECTを実行することを強くお勧めします)。



    1. JavaとPostgresの列挙型を連携させて更新するにはどうすればよいですか?

    2. PostgreSQLの再帰クエリ。選択する *

    3. 2017年に最も人気のあるデータベースブログの投稿

    4. SQLでCOUNTを使用する方法は?