「レビュー」テーブルから area_id の最大日付を取得しようとしており、(今日の日付から) 1 年を超える最大 date_finished を持つ area_id のみを返そうとしています。テーブル構造はこんな感じ
1) the 'review' table can have one or more reviews (multiple date_finished) for
each area_id
2) each region_id can have one or more area_ids
目的: 1 年以上の date_finished を持つ region_id ごとのレビューの数を返します
サンプルデータ:
region_id area_id date_finished
abc area_3 '01-01-2010 12:00:00 AM'
abc area_3 '06-01-2009 12:00:00 AM'
abc area_3 '02-01-2008 12:00:00 AM'
上記の予想される結果はリージョン abc を返す必要があり、count は 1 である必要があります (最大の date_finished は 2010 年 1 月 1 日であり、今日の日付 (2013) から 1 年よりも大きいため)
私が持っているSQLは以下です。何らかの理由で、上記で説明したすべての日付が返されます。最大日付を返す代わりに、3 つの日付を返します。SQL Server 2008 を使用しています。ありがとうございます。
select count(*)
from review group by area_id
having datediff(day,max(date_finished), getdate()) > 365