開始から現在の日付までの列のさまざまな項目の出現を合計する必要があります(将来のデータがあります) 私の表は次のようになりますこれと私は、「今週はまでは」Everytingフィルタ使用しない場合はSQL開始日から現在の日付まで複数の項目を列に合計する
|Task Name|Finish Date| Type|Planned|
|Equate |1/2/17 | App |1
|TSquare |2/7/17 | App |2
|Smart |3/1/17 | Data |1
では、各タイプ(Applicaitonによって合計列と最後の列を持つようにしたい
Select sum (case when
Tt.[TaskPercentCompleted] < 100 and Tt.[Task_Significance] like 'Application'
Or Tt.[TaskPercentCompleted] < 100 and Tt.[Task_Significance] like 'Data'
then 1 else 0 end) as [Planned]
From [Some table]
私は素晴らしいですこの出力を得る - しかし、それは今週までではなく、すべてを数えます。(そして来週 - つまり、週など) 私は再び
Select sum(case when
[Task_Significance] like 'Application'
Or
[Task_Significance] like 'data'
then 1 else 0 end) over (order by [taskfinishdate] rows unbounded preceding) as Planned
From [Some table]
where
[taskfinishdate] <= DATEADD(DAY, 8-DATEPART(DW, GETDATE()), Convert(date,getdate()))
(だから私は日付のフィルタを取得)同じステートメントにこれを追加するときしかし、私は、現在の日付までタイプによって合計する必要がありますそれらの合計だけではありません。私はこれを正しく理解している場合、あなたはSUM
の代わりにWHERE
句、GROUP BY
とし、COUNT
を使用することによって、これを達成することができます - あなただけのApplication
またはData
のいずれかのTaskSignificance
を持つ行をカウントしようとしているように思え
ここで 'taskfinishdate <キャスト(getdate()として日付)'を使用してください。 – scsimon
タイプ別に 'sum'が必要です。'タイプ別にグループ化する ' – TriV