- ベストアンサー
Access 近似する日付の検索
任意の日付を入れるとその日が営業していればその日の特売品、その日が営業日でなければ次に営業する日の特売品を抽出するクエリ(SQL、関数など)を教えてください。 たとえば、下記のテーブルAがあったときに、次のように動作します。 2000/01/01と入力→2000/01/01、たまごと表示 2000/01/02と入力→2000/01/04、トマトと表示←次営業日 2000/01/03と入力→2000/01/04、トマトと表示←次営業日 2000/01/04と入力→2000/01/04、トマトと表示 テーブルA --営業日------特売品--- 2000/01/01--たまご 2000/01/04--トマト 2000/01/05--ピーマン 2000/01/06--にんじん ちなみに営業日と曜日は関係なく、不定期です。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
おはようございます。 >日付を一つのレコードでなく、下記のようなテーブルBとあった場合に >特売品を出す方法をSQLを教えて頂けないでしょうか。 >テーブルB >----日付----- >2000/01/01 >2000/01/02 >2000/01/03 >2000/01/04 >・・・ そのような時はこんなSQLで良いように思います。 ------------------------------------------------ SELECT B.日付, A.* FROM テーブルA AS A, テーブルB AS B WHERE (((A.営業日)= (SELECT MIN(C.営業日) FROM テーブルA C WHERE C.営業日 >= B.日付))); ------------------------------------------------ お試しください。 ではでは・・・
その他の回答 (1)
- paz777
- ベストアンサー率47% (77/163)
こんにちは。 多分こんなSQLで良いと思います。 ------------------------------------------------ SELECT * FROM テーブルA WHERE 営業日 = (SELECT MIN(営業日) FROM テーブルA WHERE 営業日 >= #2000/01/02#); ------------------------------------------------ お試しください。 ではでは・・・
お礼
ありがとうございます。動きました。ご存知であればぜひ御教え頂きたいのですが、日付を一つのレコードでなく、下記のようなテーブルBとあった場合に特売品を出す方法をSQLを教えて頂けないでしょうか。 テーブルB ----日付----- 2000/01/01 2000/01/02 2000/01/03 2000/01/04 ・・・
お礼
ありがとうございます。うまく動きました。