- 解決済みのQ&A
-
- 知恵コレに追加する
MAXを利用したSQL文で、期間中の最大日のレコードを抽出したいのですが...。 SQ...
MAXを利用したSQL文で、期間中の最大日のレコードを抽出したいのですが...。
SQL初心者なもので、わかる方がいらっしゃったら教えていただけないでしょうか。
以下のようなレコードがあります。
Table名 : LogTable
名前,日付
太郎,2010/09/10
太郎,2010/09/11
三郎,2010/09/11
次郎,2010/09/11
次郎,2010/09/12
太郎,2010/09/13
太郎,2010/09/14
次郎,2010/09/15
太郎,2010/09/16
このとき、日付を2010/09/11~2010/09/15で指定して、期間中の名前の最新レコードを抽出したいのですが。
欲しい結果。
三郎,2010/09/11
太郎,2010/09/14
次郎,2010/09/15
環境はVB.NET,SQL Server2005です。
できましたら、サブクエリを使用した方法で解決したいのですが。
よろしくお願いいたします。
-
- 質問日時:
- 2010/9/18 23:05:50
-
- 解決日時:
- 2010/10/3 08:17:25
-
- 閲覧数:
- 1,314
- 回答数:
- 2
ベストアンサーに選ばれた回答
サブクエリなしのSQLでしたら、
select name, max(date) from LogTable
where date between date('2010-09-11') and date('2010-09-15')
group by name;
サブクエリありのSQLでしたら、
select * from LogTable a
where not exists
(select * from LogTable b
where a.name=b.name and a.date<b.date
and date between date('2010-09-11') and date('2010-09-15'))
and date between date('2010-09-11') and date('2010-09-15');
当方SQL Serverの環境がなくMySQLでテストしたSQLですので、見当はずれの回答でしたらご勘弁を。
- 回答日時:2010/9/19 02:46:34
この質問は投票によってベストアンサーが選ばれました!
ベストアンサー以外の回答
(1件中1〜1件)
group by を使う
select 名前, MAX(日付) FROM LogTable
WHERE 日付>=#2010/09/11# AND 日付<=#2010/09/15#
group by 名前
未確認なので
間違ってたらすまん
- 回答日時:2010/9/18 23:18:49
あなたにおすすめの解決済みの質問
- 太郎君がいました。太郎君はAサイトで紹介されたBサイトに行き登録しました。BサイトはAサイトからきた...
- レコードの平均値算出に関する内部処理について教えてください。たとえはユーザー情報としてレコードに...
- レコードを同じテーブルに主キーの値のみを任意の値に変更して新規レコードとして追加したいAccess初心...
- レコードの追加の状態でフォーム表示されると、コントロールの標題も変わる方法。レコードを新規に追加...
- レコードを複数行ロックして一つ一つコミットすることはできますか?