• 締切済み

ACCESS 受注数の集計について

教えてほしいことがあります。 宜しくお願いします。 「受注履歴」というテーブルがありまして、このようなレイアウトになっています。 受注日   商品コード 受注数量 2009/11/01  95555    10 2009/11/22  95555    5 2009/12/01  95555    10 フィールドの受注日の形式は日付で商品コードはテキスト形式、数量は数値形式です。 そしてもう一つ以下のような「受注残」というテーブルがあり、上記テーブルの受注日からさか上った1ヶ月前の日と出荷できていない受注残数などのテーブルが以下のようにあります。 受注日の1ヶ月前の日   受注日   商品コード 受注残数 2009/10/02        2009/11/01  95555    3 2009/10/23        2010/11/22  95555    2 2010/11/02        2010/12/01  95555    4 この各レコードは受注した時に在庫がなかったため、出荷できなかった数量のリストなんです。(受注日の1ヶ月間の日というフィールドは、「受注日」-30日で追加したフィールドです。) そこで、受注日からさかのぼった1ヶ月間の受注数を調べたい、そして在庫計画の参考にしたいというのが目的なんです。 例えば2009/11/22に商品95555は5個受注していますが、 (テーブル受注履歴より) その日に出荷できなかった数量は2個でした。 (テーブル受注残より) そこで、この2009/11/22から以前の1ヶ月間にどれ位受注しているのか、これを出したいのです。これを[受注履歴]を見てみますと、2009/11/1に10個と2009/11/22の5個で合計15個となるのですが、この値を「受注残」のレコードの右側にでも表示できたら便利だなあと色々とクエリでやってはみたものの、ACCESS歴2ヶ月位の私は挫折・・。 書いていることが伝われば良いのですが。 どなたか良い方法をご存知でしたら教えていただきたく、お願いします。

みんなの回答

  • nza49739
  • ベストアンサー率46% (29/62)
回答No.1

クエリーを作成することで実現できます。詳細な方法は省き、概要のみ説明します(ここでは、商品コード単位で表示することにします)。 1 新規にクエリーを作成します。このとき、テーブル受注履歴を対象に作成します。さらに、テーブル受注残も追加します。 2 受注履歴、受注残各テーブルの受注日、商品コードと結び付けます。 3 表示項目として、受注履歴テーブルの商品コード、受注数量、受注残テーブルの受注残数を選択します。さらに、受注履歴テーブルの受注日も追加します。最後の受注日は表示しませんので表示チェックをはずします。 4 表の中のセルを右クリックすると、「集計」が表示されますので、これを選択します。 5 集計の項目が現れたらば、商品コードは「グループ化」のまま、受注数量、受注残数は合計に、受注日は「Where条件」に変更します。 6 受注日の「抽出条件」に"between #2009/11/1# and #2009/11/30#と入力します。(日付は11月の1ヶ月間のという条件をセットしています。) 7 その後、左上の実行ボタンを押して表示します。右上の×をクリックして完成です。 後は、マニュアルを見ながらお試しください。

noripchan
質問者

お礼

大変遅くなり申し訳ありません。 解決できました。

関連するQ&A

  • アクセスのテーブルを分ける理由に関して質問です。

    アクセスのテーブルを分ける理由に関して質問です。 現在参考書を利用してデータベースの勉強をしてます。 試行錯誤中で弱っています。 受注テーブル(受注コード、受注日、締切日、出荷日、顧客コード) 受注明細テーブル(受注コード、商品コード、数量) とテーブルが分かれている例題がありました。 テーブルを2つに分ける理由がよくわかりません。 もし1つのテーブル (受注コード、受注日、締切日、出荷日、顧客コード、商品コード、数量) などとまとめたら何か問題があるのでしょうか? どうぞよろしくお願いします。

  • ACCESS テーブルの結合

    お世話になります。 テーブルA(約20万レコード)、B(6レコード)があり、共通しているフィールドは以下の通りです。  ・受注日  ・製品コード  ・数量 AとBのテーブルの共通しているフィールドを条件無しで1つのテーブルとして見立てたいと思っておりますがうまくいきません。 SELECT A.製品コード, A.数量, A.受注日 FROM A UNION SELECT B.製品コード, B.数量, B.受注日 FROM B; 上記SQLでエラーにはならないのですが、レコード数が本来約20万レコードあるはずが、7万レコードしか抽出されません。 SELECT A.製品コード, A.数量, A.受注日 FROM A; と SELECT B.製品コード, B.数量, B.受注日 FROM B; をそれぞれ分けてやると、レコード数に問題ありません。。 どのようにすれば2つのテーブルを1つに結合できるのでしょうか。 ご教授の程、宜しくお願い致します。

  • Accessで在庫管理する時の在庫数の出し方

    在庫管理をaccessで行おうとしています。 在庫数の出し方が分かりません。 =DLookUp("[在庫数]","[T_発注]","助成物コード='" & [Forms]![F_受注]![助成物コード] & "'")-nz([数量]) とすると、それらしい数は表示されるのですが、次のレコードで同じ商品(助成物コード)を指定すると、前のレコードの在庫と同じ数になってしまいます。 =DLookUp("[在庫数]","[T_発注]","助成物コード='" & [Forms]![F_受注]![助成物コード] & "'")-nz([数量]) した結果を次の『=DLookUp("[在庫数]"』の在庫数に引き継いでもらいたいのですが、どうすれば良いか分かりません。 上記で『助成物コード』が商品コードで、 『数量』が受注数です。 他にどんな情報があれば良いか分かりませんので、不足している情報があればご指摘下さい。

  • Accessのクエリによる集計が出来ない

    Accessのクエリによる集計が出来ない kamuycikapです。 OKWaveで様々な方のアドバイスを頂きながら、慣れないAccessと悪戦苦闘しております。 一昨日、計算したい表を作成する為にOKWaveに質問を載せました。 http://okwave.jp/qa/q5549286.html 無事に上記のアドバイスでリレーションのオプション設定を行い、集計計算したいクエリの結果を表示することが出来ました。 その表を元にして 下記の質問でアドバイス頂いた方法による集計を行おうとしたのですが、集計出来なくて困っています。 http://okwave.jp/qa/q5544785.html データベースの構成とキーは以下のとおりです。 --ここから <データベース構造:リレーションシップ> リレーションシップとテーブルの構成は下記の通りです。 -->がリレーションシップです。 Kがキーになります。 ■テーブルA      ■テーブルB    ■テーブルC    ■テーブルD K納品書コード --> K納品書コード --> K納品書コード  --> K納品書コード 仕入数          K商品コード  --> K商品コード   --> K商品コード                             K商品連番    --> K商品連番                             出品数量        K出品連番                             商品名           発送個数                             色             発送日付                             サイズ                             売値 ※テーブルCからテーブルDへのリレーションオプションを「’テーブルC’の全レコードと’テーブルD’の同じ 結合フィールドのレコードだけを含める。」としています。 <作りたいデータ> 納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量、発送個数、出品在庫数、倉庫在庫 <クエリ> ○グループ  納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量 ○合計(集計)  発送個数 ○出品在庫数(演算)  [出品数量]-[発送個数] ○倉庫在庫(演算)  [仕入数]-[発送個数] <データ状況> テーブルCのデータは約300レコードありますが、そのうち20件ほどしか商品が発送されていない為、テーブルDのデータは20件しかありません。 <望む結果> テーブルCのデータが全て表示され、紐つけられたテーブルDのデータがが存在する場合は、発送個数を表示し出品在個数を演算する。 演算した出品在個数を利用して、倉庫在庫も演算する。 <クエリの実行結果> テーブルCのデータが全て表示され、テーブルDに紐つけられたレコードも表示されるが、テーブルDに入力されている20件のデータが商品連番(テーブルCのフィールド)ごとに集計されない。 --ここまで <目的> お店に出品された商品は、日を分けて少しずつ売れていきます。(一日で全部売れることもありますが....) 従って、出品された商品(テーブルCのデータ)に対して売れていく数(テーブルDの複数のレコード)のデータがぶら下がっている形になります。 このようなデータベースですので、出品した商品が何個売れたかを計算する為には、商品に対する売れた個数を集計(合計)しなければなりません。 <結果> テーブルCの商品連番ごとの発送個数を集計したいのですが、テーブルDの出品連番ごとの集計になっている様子です。 <頂きたいアドバイス> 上記のデータベースとクエリで、テーブルCの商品連番に紐ついたテーブルDに格納されている発送個数の合計値を集計するための方法 以上、識者の方のアドバイスをお願い致します。

  • Access クエリ 抽出条件

    Access の クエリ における 抽出条件 の 書き方についてご質問させていただきます。 クエリには、左から『商品名』、『出荷数量』、『注文数量』の3列がございます。 各レコードの『出荷数量』フィールドの値と『注文数量』フィールドの値を比較し、 『注文数量』フィールドの値の方が大きいレコードだけを抽出したいのですが、どのように抽出条件を記載すればよろしいでしょうか? 元データは1つのテーブルに格納されています。 例:注文数量:500、出荷数量:200など出荷数量が少ないレコードを抽出対象 注文数量:100、出荷数量:100など注文数量=出荷数量レコードは抽出対象外

  • accessで在庫管理

    こんにちは。 accessで商品(部品)の在庫管理をすることになりました。 1)商品情報(型番・部品名・仕入元など)の基本情報の入ったテーブルを作り 2)型番をキーにして出荷入荷の記録をつけ(仕入日・出荷日・数量・出荷先など)て行きたいとおもっています。 今在庫がいくつあるのか確認しつつ入力したい関係で、例えば型番を抽出条件にすると今までのレコードが一覧で見れて、(上部に部品に関する1)の情報が見れて)一番下に新しいレコードして追加入力をすることができるような形にしたいのですが、 どのようなテーブル形式、リレーションシップをとったらよろしいでしょうか? 参考になる本が見当たらず困っています。 よろしくお願いします。

  • Accessのクエリ集計について

    Accessのクエリ集計について kamuycikapです。 テーブルを集計するクエリについて悩んでいます。 以下がテーブルの状況と試行錯誤しているクエリ。 そして実行結果の箇条書きです。 非常に長文ですが、識者の方のアドバイスをお願い致します。 --ここから <データベース構造:リレーションシップ> リレーションシップとテーブルの構成は下記の通りです。 -->がリレーションシップです。 ■テーブルA      ■テーブルB    ■テーブルC    ■テーブルD 納品書コード ーー> 納品書コード ーー> 納品書コード  ーー> 納品書コード 仕入数          商品コード  ーー> 商品コード   ーー> 商品コード                               商品連番    ーー> 商品連番                               出品数量        出品連番                               商品名           発送個数                               色             発送日付                               サイズ                               売値 <作りたいデータ> 納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量、発送個数、出品在庫数、倉庫在庫 <クエリ> ○グループ  納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量 ○合計(集計)  発送個数 ○出品在庫数(演算)  [出品数量]-[発送個数] ○倉庫在庫(演算)  [仕入数]-[発送個数] <データ状況> テーブルCのデータは約300レコードありますが、そのうち20件ほどしか商品が発送されていない為、テーブルDのデータは20件しかありません。 <望む結果> テーブルCのデータが全て表示され、紐つけられたテーブルDのデータがが存在する場合は、発送個数を表示し出品在個数を演算する。 演算した出品在個数を利用して、倉庫在庫も演算する。 <クエリの実行結果> テーブルCのデータが全て表示されず、テーブルDに紐つけられたレコードのみが表示されるため、約300件のデータではなく、テーブルDに入力されている20件しか表示されない。 --ここまで 目的は、テーブルCのデータを全て表示し、発送情報がテーブルDに入力されているデータについては演算結果を表示する事です。 現状では、テーブルDのデータしかテーブルCのレコードが表示されません。。。。 どうすれば目的のデータを収集できるクエリが作成で切るのか、識者の方のアドバイスをお願いします。

  • ACCESS2000 更新クエリで文字を追加・変更したい

    ACCESS2000のマクロでCSVファイルをインポートし、Excelに出力しています。 そこで途中に更新クエリを使い、文字の追加・変更を行いたいのですが何故かうまくいきません。。。 【テーブルA】 フィールド/受注番号(910004292) 【テーブルB】 フィールド/出荷番号(910005232)/製造番号(910005451) 【テーブルC】 フィールド/受注番号(910005232)/製造番号(910005451)/納期(1021) 受注、出荷、製造の各フィールドは先頭に"0"を追加したいです。 910004292→0910004292 納期は2009/10/21となるように、現在の西暦(できれば自動)/と3桁目にスラッシュを入れて、yyyy/mm/dd形式にしたいです。 更新クエリで フィールド:受注番号 テーブル:テーブルA レコードの更新:"0"&[受注番号] と入力してやるとうまくいきました。 同じように横のフィールドに フィールド:受注番号 受注番号 ・・・ テーブル:テーブルA テーブルB ・・・ レコードの更新:"0"&[受注番号] "0"&[受注番号] ・・・ と各テーブルの全てのフィールドを入力して更新すると、 レコードに物凄い数の"0"が追加されてしまいます。 例:0000000000000000910004292 何度も繰り返しているようなのですが、なぜなんでしょうか? 更新クエリを別々に作ればそれぞれうまくいきました。 ひとつのクエリに複数のテーブルのフィールドを入れると駄目です。 また、納期について1021→2009/10/21にうまく変更する方法はありますでしょうか? 分かりにくくて申し訳ありませんが宜しくお願いいたします。

  • access2003初心者です。30程の商品の在庫管理をしたいと考えています。

    access2003初心者です。 30程の商品の在庫管理をしたいと考えています。 以下のテーブルがあります。 <商品テーブル>商品コード、商品名 <商品生産テーブル>生産日、商品名、生産数量 <商品出荷テーブル>出荷日、商品名、出荷数量 <繰越テーブル>繰越日、商品名、繰越数量 *作成したいクエリ*  まず、日付を入力するパラメータ入力ダイアログボックスを表示  その日付のデータを抽出して計算をさせたい  表示させたいフィールドは以下のとおりです。 <商品名>:すべての商品を表示(繰越・生産・出荷数量がすべて0でも表示) <繰越数量>:前月末の数量を表示(月末が日曜日の場合はその前日)        パラメータで入力した日付が2008/04/01でも2008/04/05でも繰越数量は前月末の数量を表示 <生産数量>:パラメータで入力した日付の生産数量 <生産数量累計>:パラメータで入力した日付の月の1日から入力した日付までの生産数量の合計 <出荷数量>:パラメータで入力した日付の出荷数量 <出荷数量累計>:パラメータで入力した日付の月の1日から入力した日付までの出荷数量の合計 <残高>:<繰越数量>+<生産数量累計>-<出荷数量累計> これを元にレポートを作成したいと考えています。 よろしくお願いします。

  • 受注から出荷までのリードタイムを集計するSQLの書き方

    データベースに受注テーブルがあり、 その項目として受注番号, 受注日, 出荷日があるとします。 <受注テーブル> 受注番号, 受注日, 出荷日 001, 2009/1/1, 2009/1/1 002, 2009/1/1, 2009/1/3 003, 2009/1/2, 2009/1/2 004, 2009/1/2, 2009/1/2 005, 2009/1/4, ... この受注テーブルを元に、受注から出荷までにかかる作業効率 (リードタイム)を見る表をMS-SQLで作りたいと思っています。 抽出条件としては受注月指定をして受注日を対象にします。 <出荷リードタイム> 受注日, 注文件数, 当日出荷, 翌日出荷, 翌々日以降出荷, 未出荷 2009/1/1, 2, 1, 0, 1, 0 2009/1/2, 2, 2, 0, 0, 0 2009/1/3, 0, 0, 0, 0, 0 2009/1/4, 1, 0, 0, 0, 1 SUM(CASE WHEN (DATEDIFF(DAY,[受注日], [出荷日]) = 0) THEN 1 END) AS [当日出荷] を利用して受注日をGroup Byすることで何となくは出来たのですが、 注文のない日(上の場合は2009/1/3)もリストとして出したいので、 もう一工夫必要なのかと思っています。 お知恵を拝借できたら幸いです。

専門家に質問してみよう