ここから本文です

SQLで複数の日数データがあったときに現在よりも前の日付で一番直近のデータだけを...

mel********さん

2008/10/2009:16:53

SQLで複数の日数データがあったときに現在よりも前の日付で一番直近のデータだけを抜き出したい
というときはどういう構文をつかったらいいのでしょうか?

お世話になります。

SQLで複数の日数データがあったときに現在よりも前の日付で一番直近のデータだけを抜き出したい
というときはどういう構文をつかったらいいのでしょうか?

調べ不足だけかもしれませんが分かりましたらお願いします。

例えばデータベースに

10/31 a
10/31 b
10/22 a
10/22 b
10/22 c
10/22 d


それで現在の日付が11/3だとしたら10/31の二つを取り出したいということです。

10/31 a←取り出したい
10/31 b←取り出したい
10/22 a←以下は取り出さない
10/22 b
10/22 c
10/22 d

すみませんがよろしくお願いします。

閲覧数:
20,236
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nor********さん

2008/10/2016:29:14

たぶん#1さんのanyはいらないと思います。後、日付の不等号の向きが逆では。
select * from test where date=(select max(date) from test where date<GETDATE());

別法として
select * from test t1
where not exists
(select 1 from test t2
where t2.date<GETDATE()
and t1.date<t2.date);

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

yc_********さん

2008/10/2012:44:52

test table

date val
-------------
2008/10/31 a
2008/10/31 b
2008/10/22 a
2008/10/22 b




select * from test where date=any(select max(date) from test where date>GETDATE());

ではいかがでしょう。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる