SQL文で困っております。
下記のようなデータがあった場合に、
IDごとにデータをそれぞれチェックし、
購入日の最大値が2017年12月31日より前の購入日のデータを取得したい場合、
どのようなSQL文で取得できるのでしょうか。
色々と試しているのですが、
ID:1は本来は取得対象外にしたいのですが、
2017年5月7日のデータを取得してしまうのです。
<検索対象データ>
テーブル名:購入履歴テーブル
フィールド名:
ID 購入日
1 2018年4月9日
1 2017年5月7日
1 2016年4月11日
2 2015年6月10日
2 2014年4月9日
2 2013年4月11日
3 2017年5月6日
3 2016年4月7日
3 2014年8月11日
<自分で書いたSQL文で取得したデータ>
ID 購入日
1 2017年5月7日(※取得したくない)
2 2015年6月10日
3 2017年5月6日
<取得したいデータ>
ID 購入日
2 2015年6月10日
3 2017年5月6日
宜しくお願いします。
上記の内容では不足しておりましたので、追記いたします。
自分で書いたSQL文は以下になります。
SQL
1CREATE TABLE [購入履歴] ( 2 [ID] [int] NOT NULL PRIMARY KEY, 3 [BuyDate] [varchar(14)] [NOT NULL] 4 );
SQL
1SELECT ID, MAX(購入日) AS 購入日 2FROM 購入履歴テーブル 3GROUP BY ID 4HAVING 購入日 < '2017-12-31'

回答3件
あなたの回答
tips
プレビュー