• ベストアンサー

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--にんじん ちなみに営業日と曜日は関係なく、不定期です。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • paz777
  • ベストアンサー率47% (77/163)
回答No.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.日付))); ------------------------------------------------ お試しください。 ではでは・・・

unique
質問者

お礼

ありがとうございます。うまく動きました。

その他の回答 (1)

  • paz777
  • ベストアンサー率47% (77/163)
回答No.1

こんにちは。 多分こんなSQLで良いと思います。 ------------------------------------------------ SELECT * FROM テーブルA WHERE 営業日 = (SELECT MIN(営業日) FROM テーブルA WHERE 営業日 >= #2000/01/02#); ------------------------------------------------ お試しください。 ではでは・・・

unique
質問者

お礼

ありがとうございます。動きました。ご存知であればぜひ御教え頂きたいのですが、日付を一つのレコードでなく、下記のようなテーブルBとあった場合に特売品を出す方法をSQLを教えて頂けないでしょうか。 テーブルB ----日付----- 2000/01/01 2000/01/02 2000/01/03 2000/01/04 ・・・

関連するQ&A

  • アクセスで日付を入力すると曜日がついてきちゃう

    アクセス2002を使い始めたばかりの初心者です。 フォームで日付の入力をすると日付のみしか出てこないのですが、テーブルの方を見ると日付と一緒に曜日が書かれています。 またクエリの抽出条件で日付を入力すると、曜日が自動的にくっついてきて「指定した式の構文が正しくありません」と出てしまいます。 自分でそうしたものなのか、さっぱりわかりません。 とても困っています。 どなたか教えてください。 よろしくお願いします。

  • アクセスで営業日を計算させる方法について

    アクセス2003で作業管理のデータベースを作っています。 フォームで入力された作業開始日に部品ごとに決まっている規定作業日数(営業日のみ)をたして作業完了予定日を出したいのですが、うまくできなくて、どうしようもなくなってしまい、質問させていただきました。 ○テーブル「部品マスタ」 部品番号 部品名 規定作業日数 ○テーブル「カレンダー」 年月日 営業日フラッグ (営業日フラッグは、営業日が1、休業日を0としています) ○テーブル「受注マスタ」 受注ID 部品番号 作業開始日 作業完了予定日 上記「部品マスタ」と「受注マスタ」をもとにクエリを作成し、入力フォームを作成しました。 ○フォーム「受注データ入力」 (入力)受注ID (入力)部品番号 (入力)作業開始日 (表示)部品名 (表示)規定作業日数 (計算)作業完了予定日 翌営業日とか3営業日後という風に納期などを計算する方法は見つけられたのですが、そこから応用をきかすことができなくて、行き詰ってしまいました・・。どなたか助けていただける方、よろしくお願いします。

  • Accessを使って日付を比較したい

    MSofficeのAccessを使用して日付を比較したいのですが上手くいきません。 テーブル1のフィールドには実施日(日付型)、A期間開始日(日付型)、A期間終了日(日付型)があり データ1は2012/04/20、2012/04/15、2012/05/02 データ2は2012/04/25、2012/04/10、2012/04,23と格納されています。 この実施日がA期間に入るかどうかのチェックを行いたいのです。 クエリに入力した関数は IIf(CDate([テーブル1]![A期間開始日])<=CDate([テーブル1]![実施日])>=CDate([テーブル1]![A期間終了日]),"A期間","範囲外") と命令を書きました。 実行させるとデータ1、データ2とも期間外が返されました。 実際、返して欲しいデータはデータ1はA期間、データ2は期間外と表示したいのです。 環境はWindows XP profissional、アクセスは2002 SP3です。 よろしくお願いします。

  • Access、検索用フォームでのあいまいな検索

    現在、Accessでデータベース作成をしています。 テーブル:  ・テーブルA          ・テーブルB          (A・B間にリレーションシップ設定) クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成) フォーム   ・検索用フォーム(デザインビューでフォーム作成より)          ・検索結果フォーム(検索クエリを元に作成) また、以下のような設定を入力しました。 「検索クエリ」の抽出欄  Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1)  ※検索したい項目、すべての抽出欄に設定済 「検索用フォーム」  検索実行ボタンを作成し、マクロを設定  ・フォームを開く→「検索結果フォーム」  ・フィルタ→「検索クエリ」 上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。 ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも (1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。 2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか?? ご存知の方、ぜひ教えてください。 よろしくお願いいたします。

  • Access2013 曜日 自動的表示のクエリ

    Access2013で、備忘録作成の為、[年月日] をテーブルに短いテキスト形式で、例20001205と初めの4桁を西暦、次の2桁を月、後の2桁を日で入力してあります。 この日の[曜日] を自動的に表示させるクエリのフィールドへの記入式を教えて下さい。宜しくお願いします。

  • access 日付

    はじめまして。 access(初心者)です。 データを抽出したいのですが、 クエリの抽出条件にどのように条件入力してよいのか 分かりません。 テーブル名:商品マスタ データ  商品No. 開始日   終了日    価格 (1) 100 2008/12/01 2009/06/30 \1,000 (2) 100 2009/07/01 2010/02/01 \1,500 (3) 100 2010/03/01 2010/12/31 \2,000 このテーブルから、例えば、今日=2010/01/04 が含まれているデータを抽出したいのですが。。。 上の例で言うと、答えは(2) 本当すみませんが、教えて下さい。

  • Accessのクエリ

    下記のようなテーブルがあります フィールド 利用者 利用日 ア支店  イ支店  ウ支店         Aさん  1/1 たまご   りんご  みかん         Bさん  1/3 りんご   トマト   たまご         Cさん  1/3 ねぎ    たまご  いも クエリ等で、各支店のいずれかで「たまご」を購入した利用者を抽出したい場合 どのように設定したらよいでしょうか? もちろん、各支店のいずれでも「たまご」を購入していない利用者は抽出されないように。 クエリで、ア支店の抽出条件に「たまご」と入れ、イ支店とウ支店にor条件(またはの所) を入れるとア支店の条件が優先されてしまいます。 Access勉強中のものです。ご教授お願いします。  

  • Access クエリ検索結果

    Accessを利用して顧客管理をしています。顧客基本情報tableの顧客IDと予約表tableの顧客IDを繋げて予約日と予約者名をクエリで出しています。 ところが、検索時になぜか入力した日とは別の日に入れ替わって予約者名が出てきてしまうことがよくあります。例えばAさんを10月26日で入力したのに(別紙に記録が残っています)、10月30日の予約者としてでてきてしまうのです。なので26日の時点でAさんが予約者とは知らずに受け付けで混乱してしまいます。 予約表クエリを開くたびに、同じ日付で違う答えが返ってきてしまうこともあります。(人数が増えていったりとか) どうしたら良いでしょうか?教えてください。

  • ACCESS 2010 検索抽出し表示するには?

    ACCESS 2010 検索抽出し表示するには、 クエリ作成をどうすればよいでしょうか、お教えください。 DB名→testA テーブル名→テーブルA テーブルAには、下記3つのデータを入力した情報が入っています。 ・製品番号 ・製品名 ・メモ 製品番号が一致した場合、 製品番号/製品名/メモが 表示するようにしたいです。 よろしくお願いいたします。

  • SQL文の作成でなやんでいます。

    一ヶ月分のカレンダーがあり 営業日には1がたっているテーブルがあります 営業日 営業日フラグ 実営業経過日数 2012/02/01 1 1 2012/02/02 1 2 2012/02/03 0 2 2012/02/04 0 2 2012/02/05 1 3 2012/02/06 1 4 2012/02/07 1 5 2012/02/08 0 5 上記のように実営業経過日数をクエリで抽出したいのですが どのようにサブクエリを作成したらいいのか教えてください

専門家に質問してみよう