0

SQL Server 2008 R2 を使用しています。データベースに、アクティブ、完了、非アクティブなどのさまざまなステータスの患者に関するデータを含むテーブルがあります。日付ごとに「アクティブ」ステータス グループの患者を取得するように求められます。

次のクエリを作成しました:

SELECT COUNT(*) AS TotalActivePatients, CONVERT(VARCHAR(10), CreatedDtUTC,111) AS CreatedDtUTC
FROM TablePatient 
WHERE MonitoringStatus LIKE 'Active' 
AND IsDeleted=0
GROUP BY CONVERT(VARCHAR(10), CreatedDtUTC,111)

そして、それは私に以下のような結果を与えます:

TotalActivePatients CreatedDtUTC
1                   2013/02/24
2                   2013/02/25
4                   2013/02/28
4                   2013/03/01
1                   2013/03/06
1                   2013/03/10
3                   2013/03/11
2                   2013/03/14
3                   2013/03/15
2                   2013/03/16

しかし、それは私に特定の日付のアクティブな患者の数を与えています. その特定の日付までのアクティブな患者の合計が必要です。

解決策はありますか?

ありがとう

4

2 に答える 2

0

これにより、現在の合計が得られます...

SELECT  DISTINCT COUNT(1) OVER (ORDER BY CONVERT(VARCHAR(10), CreatedDtUTC,111)), 
        CONVERT(VARCHAR(10), CreatedDtUTC,111) AS CreatedDtUTC
FROM    TablePatient 
WHERE   MonitoringStatus = 'Active' 
AND     IsDeleted = 0
于 2013-04-09T14:19:13.623 に答える
0

正解は以下になります。

SELECT  DISTINCT
     CONVERT(VARCHAR(10), CreatedDtUTC,111) AS CreatedDtUTC,
     COUNT(1) OVER (PARTITION BY CONVERT(VARCHAR(10), CreatedDtUTC,111)), 

FROM    TablePatient 
WHERE   MonitoringStatus = 'Active' 
AND     IsDeleted = 0
ORDER BY 1

using 句に基づく追加情報は、 httpOVER ://technet.microsoft.com/en-us/library/ms189461.aspx で確認できます。

于 2013-11-05T15:57:59.467 に答える