ノートの合計に基づいて、(日付):これはここで私の他の質問に関連して、Select column where another related column's total is 0リターンの最大の別の列
は、私はテーブルと呼ばxDays以下のように設定している。それぞれについて、
╔══════════════╦═════════════════════════╦═══════╗
║ Project_Name ║ Date ║ Hours ║
╠══════════════╬═════════════════════════╬═══════╣
║ proj1 ║ 2015-03-06 00:00:00.000 ║ 2 ║
║ proj1 ║ 2015-03-05 00:00:00.000 ║ 3 ║
║ proj1 ║ 2015-03-04 00:00:00.000 ║ 0 ║
║ proj2 ║ 2016-03-03 00:00:00.000 ║ 1 ║
║ proj2 ║ 2016-03-04 00:00:00.000 ║ 0 ║
║ proj2 ║ 2016-03-05 00:00:00.000 ║ 0 ║
╚══════════════╩═════════════════════════╩═══════╝
Project_Name
の合計がHours
より大きい場合は0
となり、そのプロジェクトの最後のDate
エントリのみを返信したい場合は、1年以上前であれば、0時間以上経過している必要があります。
上記の表では、合計時間が> 0(このケースでは5)であるため、select文はproj1 | 2015-03-03 00:00:00.000
を返します。最も新しい日付は> 0時間で、1年以上前です。
select max(day), project_name
from xDays
where hours > 0
group by project_name, hours
having max(day) < dateadd(dd, -365, getdate())
order by project_name
これは一年前に>私の日付を与えることに成功し、> 0時間を、それだけで最新のものを与えるものではありません:
は、今私が持っています。
上記の例では、それは
2015-03-06 00:00:00.000 | proj1
2015-03-05 00:00:00.000 | proj1
私は同じプロジェクトのために複数の日付を返しません
max(day)
を使用して考え
を与えるだろうか?
'project_name'に加えて' hours'でグループ化しています。 'group by'から' hours'を削除してください。 – Siyual
それはうまくいった!ありがとうございます – pfinferno