2

私は 1 つの SQL クエリで立ち往生しています。

私のテーブル形式は次のとおりです。

アカウント番号    AdmitDate                  DOS                    ChargeAmount
12366 2011-12-07 00:00:00.000 2011-12-15 00:00:00.000 25.00
12366 2011-12-07 00:00:00.000 2011-12-16 00:00:00.000 30.00
12366 2011-12-07 00:00:00.000 2011-12-17 00:00:00.000 55.00
12366 2011-12-07 00:00:00.000 2011-12-18 00:00:00.000 48.00
12366 2011-12-07 00:00:00.000 2011-12-19 00:00:00.000 25.00
12366 2012-01-08 00:00:00.000 2012-01-08 00:00:00.000 58.00
12366 2012-01-08 00:00:00.000 2012-01-09 00:00:00.000 46.00
12366 2012-01-08 00:00:00.000 2012-01-10 00:00:00.000 90.00
12366 2012-01-08 00:00:00.000 2012-01-11 00:00:00.000 52.00
12366 2012-01-08 00:00:00.000 2012-01-12 00:00:00.000 95.00
12366 2012-01-08 00:00:00.000 2012-01-13 00:00:00.000 53.20

1つの Admit Dateと ChargeAmount の合計で上位3 つのDOSのみが必要です。他のすべての DOS は無視する必要があります。これを行う方法がわかりません。以下の望ましい出力が必要です。

口座番号   承認日 請求                 
12366 2011-12-07 00:00:00.000 128.00
12366 2012-01-08 00:00:00.000 200.00

承認日 2011-12-07 の 2011-12-17 から 2011-12-19 のみを合計する必要があり、他の承認日についても同じことを行います。SQLクエリがある場合は、私と共有してください。

前もって感謝します

4

2 に答える 2

1

試す:

SELECT TOP 3 Acct, AdmitDate, SUM(ChargeAmount)
FROM YourTable
GROUP BY Acct, AdmitDate

編集

SELECT Acct, AdmitDate, SUM(ChargeAmount)
, RANK() OVER (PARTITION BY AdmitDate ORDER BY AdmitDate DESC)
FROM YourTable
GROUP BY Acct, AdmitDate
于 2013-02-15T09:42:33.023 に答える