• ベストアンサー

指定された日付とマッチングした日付のレコードを取得するには?

PAPA0427の回答

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.1

データベースはなんでしょう?Accessを前提にすると。 一日だけの集計なら SELECT SUM(金額) AS 購入金額 FROM 売上 WHERE 顧客ID = お客様ID AND FORMAT(購入日付, "YYYYMMDD") = FORMAT(現在日付, "YYYYMMDD") 顧客IDと購入日付は売上テーブルに設定されてるものとします。 お客様IDと現在日付はフォームから取得するものとします。 一覧形式で日付ごとに集計するのなら、 SELECT 顧客ID,購入日付,SUM(金額) AS 購入金額 FROM 売上 WHERE FORMAT(購入日付, "YYYYMMDD") BETWEEN FORMAT(開始日付, "YYYYMMDD") AND FORMAT(終了日付, "YYYYMMDD") で、でてくるはずです。

noname#47454
質問者

お礼

ありがとうございます。VBで取得した日付をSELECT文でどう条件として組み込むかが・・・ FORMATはSQL内でも使用可能でしょうか? 現在も頭を悩ませ中です。 UriageSQL = "SELECT Sum(売上額) as 売上額 FROM 売上 WHERE 売上日=" & "#" & strDATE & "#" では、SQLのステートメントが間違っているというエラーがでます。

関連するQ&A

  • Access クエリで、レコードの無い日付も出力したい

    売上テーブル 日付   名前 金額 2007/01/01 A 100 2007/01/02 B 200 2007/01/05 C 500 2007/01/05 A 500 希望するクエリ結果 日付  件数 売上高 2007/01/01 1 100 2007/01/02 1 200 2007/01/03 0  0 << これを表示したい 2007/01/04 0  0 << これを表示したい 2007/01/05 2 1000 売上.日付 でグループ化すると、レコードの無い日付が表示されません。 集計期間内の全日付が表示されるようにするには、どうすればよいのでしょうか? 別に日付テーブルを作らなければならないのでしょうか?

  • 他のPCの日付・時刻の取得

    複数台のPCからAccessデータベースに 接続して書き込むプログラムをVBで作成していますが 共通の日付時刻を取得したいのですが可能でしょうか? 1.データベース(Access2000)で日付を取得 2・データベースファイルがあるPCの日付時刻を取得 データベースに日付をもっているとは思えないので「2」の方法に なると思うのですが、、どちらでも構いませんし別の方法があれば 教えて下さい。 VB6 SP5 ACCESS 2000(ADO2.5,DAO3.6)

  • レコードセットからレコードセットって作れますか?

    WindowsXP,VB6,SP5,で開発しています。 タイトルそのままなのですが、 ある事情で、まずはデータベース(Access)からレコードセットを作成しています。 そのレコードセットをもとに色々と抽出したいんです。 もし、データベースからSQL文で抽出するときみたいに、そのレコードセットを、 SUM(~とかGROUP化したりとかできればいいなあと思っているのですが、 その方法がわからず、2,3回遠回りしてレコードセットを作成してます。 レコードセットからレコードセットを作成することってできないのでしょうか? わかりにくくてすみませんが、どうぞよろしくお願いしますm(_ _)m

  • エクセルの日付を範囲指定して振り分けたい

    エクセル2013を使用しています。 以下の様なデータがあるのですが、分析するために任意の日付毎に集計して振り分けたいのですがどのようにすれば良いでしょうか? 有効期限 2014/11/13 2014/12/27 2015/1/8 2014/12/29 2015/1/20 2014/12/28 2015/2/21 2015/3/21 やりたいのはこんなイメージです。 2014/11 2014/12 2015/1 2015/2 のように月単位に集計(あるいは半月ごとに集計→11月上旬、11月下旬、12月上旬等)したいです。 上記のように振り分けた後に、11月の人数合計や売上合計を集計等したいのですが。 関数等あまり詳しくないのですが、アドバイスいただけると助かります。

  • Access2000 / 「レコードを追加できません」

    こんにちは Access2000で困っております。 簡単にいいますと、フォーム上から日付/時刻型のデータを入力しようとしても 「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されうまく入りません。 テーブルの構成ですが、 ★が主キー (1)T現場台帳 ★NO(オートナンバー型) 現場記号(テキスト型) ・ ・ 省略 (2)T外部集計警備 ★NO(オートナンバー型) 現場記号(テキスト型) 警備依頼日付(日付/時刻型) 警備会社ID(数値型) 集計人数(数値型) (3)T警備会社 ★警備会社ID 警備会社名(テキスト型) ・ ・ 省略 上記テーブルはリレーションがかかっており、 (1)T現場台帳.現場記号(テキスト型)----(2)T外部集計警備.現場記号(テキスト型) (2)T外部集計警備.警備会社ID(数値型)---(3)T警備会社.★警備会社ID それぞれ、参照整合性のついたリレーションです。 更にこれらをまとめるために、Q警備会社集計クエリ(選択クエリ)をつくりフォームに利用しています。 Q警備会社集計クエリの構成 T現場台帳.担当者ID T外部集計警備.警備依頼日付 T外部集計経緯日.警備会社ID T警備会社.警備会社名 T外部集計警備.集計人数 (並べ替えや絞込みは、なし) この「Q警備会社集計クエリ」を使って フォームからウイザードを使用してフォームを作成し、警備依頼日付を入力しようとすると「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されます。 どなたか、Accessの痒いところまで手の届く方、お助けください。

  • Accessでクエリに演算を加えたら新規レコードがでなくなった。

    Accessでフォームを作成して後にクエリに演算を加えたら、サブフォームに新規レコードが出なくなり入力機能がなくなってしまったのですが、どうしてでしょう? クエリでは[売上小計]と[仕入小計]と[粗利]を計算するため集計を演算にしないとフォームで合計が#エラ-になってしまうので、演算にしたところなくなってしまい復活しません。

  • VB.netでmdbのレコードを取得

    VB.netからAccessで作成したデータベースのレコードを 取得するプログラムを作りたいと考えています。 ですが、データベースを操作するプログラムは初めてですので、 どうもイメージがわきません。 やりたいことは、 1.VBからmdbにアクセス(DAO) 2.SELECTでレコードを取得 3.取得したレコードから必要なフィールドをテキストボックに表示 上記の処理が可能であれば、コーディングのヒントを頂けないでしょうか? よろしくお願いします --- OS:Windows Vista 開発環境:VS2005 pro

  • レコードセットを保留中にするには?

    WINDOWSXP,VB6,SP5で開発しています。 レコードセットにデータをどんどん追加して、 最後にまとめてデータベースに追加する。 みたいなことしたいのですが、可能なのでしょうか? ちなみに、サーバはSQL使ってます。

  • 指定日付から90日後の日付を算出するには

    Perlの質問です。 登録日 2006/1/1 2006/2/10 2006/2/20 2006/3/15 の様なテキストファイルがあります。 このファイルを読み込んで、各レコードの値ごとに この登録日より90日後の日付を算出したいのですが、どのようなコードになるのでしょう。 ちなみに現在から何日後の日付を出すというサンプルは見つけました。 http://www.aimix.jp/cgi/accdatecnt.html しかしこれはtimeで現在日時を取り出して、それに何日間を秒単位にして加算するということなので、理屈はわかるのですが、いまいち今回のやりたいことに結び付けれません。 timeが1970年1月1日 00:00:00 から現在までの秒数を算出する関数ですから このように、先のリストの例でいうと、2006/1/1 00:00:00は、1970年1月1日 00:00:00 から何秒目なのかを算出できればなんとか出来そうなんですが・・・

    • ベストアンサー
    • CGI
  • フィールドの非表示

    frm1というフォームに表示すると表示しないというオプションボタンがあり 表示しない方のボタンをオンにすると TDBGridの合計のフィールドは表示しないようにしたいのですが またデータベースへ登録するときは "なし"と登録したいのですが こんなのVBで出来ますでしょうか? 教えてください。 VB6.0 SQL Serverです。 よろしくお願いします。