0

次のようなデータを持つテーブルがあります。

Date            Custid  CreditDebit     Units   Value
2013-03-29 06:21:46.903     1       C   1   10
2013-03-29 06:21:46.903     1       C   2   11
2013-03-29 06:21:46.903     1       C   1   12
2013-03-29 06:21:46.903     1       C   2   13
2013-03-29 06:21:46.903     1       D   1   20
2013-03-29 06:21:46.903     1       D   2   21
2013-03-29 06:21:46.903     1       C   1   20
2013-03-29 06:21:46.903     1       C   2   21

次のように一時テーブルの出力を取得する必要があります。

Date            Custid  CreditDebit     Units   Value Balance
2013-03-29 06:21:46.903     1       C   1   42      42-20
2013-03-29 06:21:46.903     1       c   2   45      22+45-21
2013-03-29 06:21:46.903     1       D   1   20      ---
2013-03-29 06:21:46.903     1       D   2   21      ---

これは、「CreditDebit」と Units に基づく Value 列の合計です。CTE sql Queryを使用してこれを達成するにはどうすればよいですか

4

1 に答える 1

2
;WITH summary_table_cte
     AS (SELECT Date,
                Custid,
                CreditDebit,
                Units,
                sum(value) AS [Value]
         FROM   YourTable
         GROUP  BY Date,
                   Custid,
                   CreditDebit,
                   Units)
SELECT *
FROM   summary_table_cte; 

ステートメントの先頭にあるセミコロンに注意してください。CTE の前のステートメントは、セミコロンで終了する必要があります。プレフィックスWITHを付けることで、どこにでも置くことができます。

于 2013-03-29T09:06:24.313 に答える