私はSQL Serverを使用しており、次の方法でtodoリストからクエリを作成する必要があります。SQL:タスク別にグループ化する方法と、完了したタスクのみを選択する方法はありますか?
ID Date Status Phase
1 21.1.2017 Done 1
1 22.1 2017 Done 2
2 20.1.2017 Done 1
2 22.1.2017 Undone 2
3 23.1.2017 Undone 1
3 25.1.2017 Undone 2
だから私は完了(すべてのステータスが完了している)、その後、MAX(日)ので、最後の日付を取るされているこれらのタスクを見つける必要がありますか?フェーズ情報は必要ありません。
結果は
ID Date Status
1 22.1 2017 Done
あなたは、グループに、MAX(日付)を取るだけでなく、すべてのステータスが完了しているいくつかのルールを作るか私を助けてくださいすることができすべきですか?あなたがこれを使用することができます
select t.id, max(t.date) as date, max(t.status) as status
from t
group by t.id
having min(t.status) = max(t.status) and min(t.status) = 'Done';
フェーズはステータスのIDですか? –