ACCESSデータ処理についてのアドバイス

このQ&Aのポイント
  • ACCESSのデータ処理について教えてください。商品番号に相当する最安と最新の価格情報を抽出する方法を教えてください。
  • 商品番号を参照して、最安価格と最新価格を参照する方法を教えてください。
  • ACCESS初心者の方へのアドバイスをお願いします。
回答を見る
  • ベストアンサー

ACCESSのデータ処理について教えて下さい。

ACCESSのデータ処理について教えて下さい。 商品番号に相当する最安と最新の価格情報を抽出するには、どの様にしたらよいのでしょう? クエリ1: 商品番号 価格    日付 ABCDE   150   2009/03/01 ABCDE   100   2010/03/01 BCDEF   300   2009/03/01 の様に商品番号に相当する価格情報と日付の情報を参照可能。 1つの番号に複数の価格情報が登録されている事が多いです。 この価格情報の元テーブルはODBC接続された環境下にあります。(ODBCの詳細は分かりません。) このデータを元に 商品番号を参照して、最安価格と最新価格を参照するにはどの様にしたらよいでしょう? 下記の様なデータで整理したいのです。 商品番号  最安価格  最安日    最新価格   最新日 ABCDE   100   2009/03/01   150   2010/03/01 BCDEF   300   2009/03/01   300   2010/03/01 XXXXX クエリ1に存在しない商品番号に相当する価格情報等のフィールドは空欄 ACCESSは全くの初心者で、アドバイスいただきたく。

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

  • ベストアンサー
  • nikenike1
  • ベストアンサー率44% (76/169)
回答No.1

ご質問のクエリ1から続けて以下のような処理を行います。 ポイントは”集計”です。 最安値=商品番号ごとの価格の最小値 最新日=商品番号ごとの日付の最大値 であることを踏まえて読み進めてください。 1-1 最低値を求めるクエリ(クエリ1-1とします。)  クエリ1から以下の2つのフィールドのみを選択します。   アクセスの集計機能をONにして以下のクエリを作ります。   | 商品番号  | 価格   | グループ化 | 最小値  ※上記で「商品番号ごとの最安価格」が抽出できます 1-2 上記のクエリ1-1と質問文のクエリ1をマッチング(結合)します。さらにアクセスの集計機能をONにします。   クエリ1  クエリ1-1   商品番号----商品番号     価格 ----価格の最小値    日付 |商品番号 |価格の最小値 |日付        | |クエリ1  |クエリ1-1   |クエリ1-1     | |グループ化|グループ化 |最大値(又は最小値)| ※上記で「クエリ2(商品番号の最安価格)と同じ価格のときの日付」を取得できます。なおクエリ1に同じ商品番号で同じ価格のデータが2つ以上あると結果がダブるので、”集計”を利用しています これで完成形の左半分ができるはずです 以降同様に「集計」を利用し、 2-1:商品番号をグループ化し、日付の最大を求めるクエリ作成 2-2:クエリ1と2-1のクエリで商品番号と日付を結合 商品番号、日付、価格 の3つのフィールドを選択します。 これで完成形の右半分ができるはずです 3-1:商品番号(や商品名)をグループ化したクエリAを作成します。 最後は今までの3つの表を”商品番号”で結合し、完成形にします。   クエリ1-2  クエリ3-1  クエリ3-1   商品番号-----商品番号----商品番号   価格の最小   商品名    日付の最大   最安日の・・  :      最新価格の・・ |商品番号|最安値|最安日|最新価格|最新日| |3-1    |1-2   |1-2   |2-2    |2-2  | 以上長文ですがお試しください。        

3620313
質問者

お礼

回答ありがとうございました。 目的のデータ構成としては達成できたのですが、順番が商品番号の昇順で並べ替えられてしまいます。 順番は変更しない様にできないでしょうか? 商品番号とは別にID(番号)が存在し、このIDの順番を変更すると構成がおかしくなってしまうのです。 ”3-1:商品番号(や商品名)をグループ化したクエリA” の段階で並べ替えられてしまいます。 P.S ちなみに下記の一番右のクエリ3-1はクエリ2-2でしたね。 クエリ1-2  クエリ3-1       クエリ3-1(クエリ2-2)   商品番号-----商品番号----商品番号   価格の最小   商品名    日付の最大   最安日の・・  :      最新価格の・・

3620313
質問者

補足

調べたところ、ACCESSでは順番が変わることがやむをえないとのことが情報として掲載されていたので、IDの前に番号のフィールドを設けて、昇順に並べることでうまくいきました。ありがとうございました。

関連するQ&A

  • アクセスでのデータ保存について。

    アクセスの登録画面で、ボタンをクリックしたときのみ保存したいのですが、×印を押して閉じても1つでもデータが入力されていたら、保存されてしまいます。保存というボタンをクリックして初めて、テーブルにデータが入っていくという風にはできないのでしょうか? tbl_商品・・・商品番号,商品名,更新日とあります。frm_商品・・・登録,修正,削除,参照,クリア,閉じるというコマンドボタンと商品番号,商品名,更新日のテキストボックスがあります。仕様としては、一画面で新規商品名入力やデータの修正、削除、商品一覧等が見れるようにしたいのです。frm_商品を開くときは、新規フォームだけが開けばいいのですが、入ってしまっているデータはやはり見れてしまうのでしょうか?参照をクリックすることでクエリを開かせて詳細情報が参照できるように作成したいのですが・・。

  • アクセス ユニオンクエリ上手くデータを結合出来ない

    アクセス超初心者で、上手くいかず困っていますのでご教授お願いいたします。 また、初心者のため、文面におかしい所があるかと思いますが、ご容赦ください。 アクセスのユニオンクエリの質問です。 平成21年度 商品“1”データ一覧、平成21年度 商品“2”データ一覧というクエリがあります。 それぞれのクエリに顧客情報として、氏名や契約日などの情報が入っています。 上記それぞれのクエリをユニオンクエリの構文にて、商品2を1のデータに結合させました。 下記が構文の式です。 SELECT 担当,電話番号,契約者名,契約者住所,商品名1,契約日,支払方法,支払回数,毎月支払額,販売価格,"","","","","","" FROM 平成21年度 商品1データ一覧 UNION SELECT 担当,電話番号,契約者名,契約者住所,"","","","","","",商品名2,契約日,支払方法,支払回数,毎月支払額,販売価格 FROM 平成21年度 商品2データ一覧; となっています。 しかし、上記の構文内容では、思ったような結果になりませんでした。 結果は、お客様A~商品1~、違う行にお客様A~商品2~と別れてしまっている状態です。 最初は、商品名1と2で別々にコピーを出していたのですが、これでは参照しにくいということで、ダメ出しを食らいました。 希望内容としては、担当-電話番号-氏名-住所-商品名1-契約日-支払方法-支払回数-毎月支払額-販売価格-商品名2-・・以下商品名1の名目と同じ。 という様に、お客様の個人情報、商品名1とその詳細、商品名2とその詳細を“1行で結合させる”にはどのようにすればよろしいでしょうか? 元々のデータ作成者は既に不在。アクセスに詳しい方も周りでいない。書籍などを読んでも、すでに出来上がっている状態のものなので、今回の問題を解決させるための方法を探すこと自体が困難(私の力不足だと思いますが)で、非常に困っている状態です。 どうかよろしくお願いいたします。

  • accessからのデータ参照について

    ご存知の方がいたら教えて下さい。 【動作環境】 OS:WINDOWS SERVER 2003,WINDOWS XP ACCESS:ACCESS2000 ORACLE:9i(9.2.0.1.0) 1つのACCESSファイルにシステム部分とデータ部分が存在しているACCESSのシステムを「システム部分はACCESS」「データ部分はORACLE」という形にしました。 ACCESSで管理していたデータをORACLEへ移行して、データ自体は簡単に移行が行え、ODBCでリンクをしてデータを参照できる状態にしました。 ここまでは、良かったのですが移行を行ったACCESSのテーブルに1レコード240ぐらい項目のあるテーブルが存在してリンクテーブルを開くことができません。 クエリーでも項目を選択した場合は参照できますが、全てを表示させようとするとダメです。 パススルークエリ等も試してみたのですが、いまいちうまくいきません。 どうにかして、1レコード240ほどのORACLEデータをACCESS側で参照することができないでしょうか? 説明が分かりずらく申し訳ありません。ご質問いただければ補足を致しますので、よろしくお願いします。

  • MS Accessの抽出の仕方について教えていただきたいのですが・・・

    Accessのクエリでたとえば下図のようなクエリがあるのですが、 ------------------------------------------------------------    製品番号   |  商品番号 |  品   名   |  品名カナ ------------------------------------------------------------ 0123456789ABCD | 789ABCD   | ボールペン(黒)| ボールペン 123456789ABCDE | 89ABCDE   | 万年筆     | マンネンヒツ     ・        ・       ・         ・     ・        ・       ・         ・ このデータの「製品番号」の上位7桁だけ抽出したくてヘルプで関数をいろいろ調べてみたのですがよくわからず困っています. 前回違う質問をさせていただいたときに,更新クエリでRIGHT関数を使って下位7桁の抽出の仕方を教えていただいたのですが,その関数の逆版(LEFT関数??)のような感じの関数は存在しないのでしょうか? ありましたらぜひ教えていただけないでしょうか. どうぞよろしくお願い致します.

  • アクセス[ファイルを開かずに、毎日一定時刻にデータ更新をしたい]

    アクセスは初心者レベルです。 ODBCデータベースから、テーブルにリンクさせている情報があります。 それを、毎朝決められた時刻にデータをとってきて、それを追加クエリとして別のテーブルへデータを追加していく。 ということは可能でしょうか?

  • ACCESS フォームの非連結の日付を参照したい

    ACCESS2010、WinXPの環境です。 受注データを参照したフォームから納品データに転記するフォーム(納品入力F)と追加クエリを作成しています。 非連結で作成した納品入力Fに、商品名、数量、日付とも、変更する可能性がある為、非連結の商品名、数量、日付のテキストボックスを作っています。 日付は、=DATE()で規定値に設定して コマンドボタンでプラスとマイナスで日付を前後できるようにしています。 追加クエリは、それぞれの非連結フィールドに 式1: [Forms]![納品入力F]![商品名]  式2: [Forms]![納品入力F]![数量]  式3 [Forms]![納品入力F]![日付]としています。 日付は、日付[S]型です。 これで追加クエリでデータシートをみると、数量や商品名は参照できていますが、 日付のみが空白になります。 ACCESS2000の時に作成した同じ方法(のつもり)でさくせいしたフォームと クエリでは、うまく参照してデータに転記できています。 何度か新規に作成して試したのですが、同じ内容となります。 原因や解決方法を教えてください。

  • アクセスでデーター抽出方法を教えて

    アクセスで、クエリー&サブフォームを使わず、テーブルのデータをフォーム上で抽出したいです。教えて下さい。(例)テーブル1:商品名A 商品番号2・・・・・、フォーム上で商品番号2と入力したら商品名Aだけを表示したい。

  • ExcelでAccessの時間データがおかしい

    今回コンピュータが新しくなり、Excel・Access共に新しくなり、 以前使用していたExcel2003・Access2003からExcel2013および Access2013の32bit版になりました。 Accessのデータベースは前から使用している2000仕様です。 使用しているデータは出退勤のデータで、ExcelでODBCを利用して Accessのデータを読んでいます。 問題は、出勤日や出勤時間などは、日付と時間の混合で入っていて問題なく Excelに読み込まれますが、勤務時間は「1900/1/0 0:00」と出力され 時間のみの表示形式にしても「0:00」と表示されます。 Accessのフィールドデータ型は共に「日付/時刻型」になっていますが 前者は日付と混合で、後者は日付無しの時間のみです。 クエリーの編集でデータが表示されたものは、問題なく勤務時間が 時間で表示されています。 どうしてExcelに読み込むと時間が無くなってしまうのでしょうか よろしくお願いします。

  • Access2019でMySQLデータ更新で障害

    初めてご質問します。 Access2019でMySQL(5.7.24)にODBC接続し、直接テーブルを更新したり、フォームからデータ挿入しようとすると、参照も更新もできるのですが、頻繁にAccessが強制終了してしまいます。 環境は以下の通りです。  OS:WindowsServer2016  Access:2019  MySQL:5.7.24  その他:Access、MySQLとも同じサーバー上にインストール  ODBCドライバー:mysql-connector-odbc-8.0.27-win32   MySQLは初の設定のため、ネットなどを参考にインストール、ODBCも無事に接続でき、Access上で作成していたデータを投入して、フォームからのデータ登録を試したところ、頻繁にエラーが発生してAccessが落ちてしまいます。 不思議に思い、AccessよりODBCでリンクを張っているテーブルを参照し、ごみデータの削除をすると同様にAccessが落ちることから、AccessとMySQLDBとの通信等等の障害と感じています。 OSのイベントビューワーでも、Applicationのエラーに複数のエラーが確認できました。 ・障害が発生しているアプリケーション名: MSACCESS.EXE、 ・Aborted connection 4 to db: ・障害バケット 1366483222980313419~ 当初はmysql_upgradeが発生していたので実行しました。 こちらを完了したところmysql_upgradeは表示されなくなりました。 同様にAccess2019も更新し、最新になっています。 AccessからODBC接続をさせ、安定して稼働させるには、どのようにしたらよいか、お知恵をお貸しいただけないでしょうか。

    • ベストアンサー
    • MySQL
  • アクセス データの表示について

    アクセス2000 windows98です。 いくつかのテーブルを組み合わせ、計算やグループ化 などをして作った2つのクエリ同士を組み合わせてひとつ のクエリを作ったのですが、片方のクエリにしかない データは表示されません。 両方のクエリ(クエリを作った元のテーブルの両方に) にデータがないとだめなのです。 ひとつの商品を作るときにかかった費用で社内費と社外費 をそれぞれのクエリで計算してそれを組み合わせてひとつ のクエリを作ろうとしているので、社内費のみで作ること ができた商品は社外費のクエリには存在しないので商品名が表示されないという状況です。 多少アクセスのわかる方に聞きましたところ結合プロパティを片方のクエリにしかなくても表示できるように変えればよいと言われ、やってみたのですが良くわからずうまくいきません。 こちらは初心者ですので説明の仕方が下手でうまく 伝えられなくてすみません。 できるだけ簡単に教えて頂ければありがたいです。

専門家に質問してみよう