2
は、サンプルデータセットですにおける分日時:TSQL選択ここ句
1 60
2 120
私たちは、持続時間の合計を計算したい状況が行われていない場合:期待
ID DATE STATUS DURATIONTIME
1 30-08-2017 Done 220
1 30-08-2017 In progress 100
1 29-08-2017 In progress 50
1 28-08-2017 New 10
2 30-08-2017 Done 200
2 30-08-2017 In progress 100
2 29-08-2017 In progress 60
2 29-08-2017 New 50
2 28-08-2017 New 10
結果ステータスが進行中の場合は、最も早い日付の期間のみを取る。ここで
は私がしようとクエリです:
SELECT ID, SUM(DURATIONTIME)
FROM MYDB
WHERE STATUS <> 'Done'
AND DURATIONTIME = CASE
WHEN (STATUS = 'In progress' AND DATE <> min(DATE))
THEN 0
ELSE DURATIONTIME END
GROUP BY ID ASC
しかし、クエリが失敗した...この問合せをリライトする方法任意のアイデアを?
それは他のステータスは、同じIDで複数の行を持つことができるので、私はデータセット –
を編集します動作しません@ VincentTeyssier - あなたは 'DENSE_RANK'が必要です..更新されました –
しかし他のステータスのDURATIONTIMEはカウントされません。 –