- ベストアンサー
Access 分類分け クエリの作成方法について
商品分類項目に野球 テニス サッカー等の項目が15以上あります。 その各項目にウエア シューズ グッズ 構成比率とあります。 テーブルを作成するときに構成比率 ウエア シューズ グッズ 分類IDとフィールドを作成し、項目事に分類IDを振り分けました。 野球販売高を算出するには売上高*野球構成比/100*0.5と計算します。 クエリでこれらを計算するには抽出条件で15項目のファイルを作成する必要がありますよね さらに計算する1項目につき1ファイル必要ですよね 算出するのは野球販売高だけではなく、テニス販売高、サッカー販売高 と項目事に必要です。 計算項目はこれ以外にも14あり、それらを上記の方法で算出するとファイル数が膨大になります。 Accessではクエリの数が数十個になるのは普通なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
●質問にはテーブル等の具体例を挙げて質問すること この質問は説明は長いが、詳細は判りにくい ●テーブル設計について適否の判断を仰ぐこと 構成比率をテーブルに持つのは適当か。算出項目ではないのか。 ●クロス集計クエリで解決できるか(#1のご回答) ●アクセスのピボットテーブルでできないか。( クロス集計クエリと似ているが。 http://www.relief.jp/itnote/archives/000670.php バージョン2002から、Accessでもピボットテーブルやピボットグラフが作れるようになりました。 詳細 http://homepage2.nifty.com/MrUr/katuyo/pvtsamp.htm http://hamachan4.exblog.jp/4469219/ ほか多数 ーー 勝手にデータを作ってみた(実例を挙げてないので回答者に手数をかけることになるのだよ) ID スポーツ フィールド2 フィールド3(=売上) 1 野球 ウエア 20 2 テニス ウエア 15 3 野球 シューズ 10 4 テニス ウエア 20 5 サッカー ウエア 30 6 テニス ウエア 5 7 テニス シューズ 15 8 野球 ウエア 40 9 サッカー グッズ 25 10 テニス グッズ 20 11 サッカー ウエア 10 12 野球 グッズ 50 13 テニス シューズ 15 選択クエリ化する ID スポーツ フィールド2 フィールド3 1 野球 ウエア 20 2 テニス ウエア 15 3 野球 シューズ 10 4 テニス ウエア 20 5 サッカー ウエア 30 6 テニス ウエア 5 7 テニス シューズ 15 8 野球 ウエア 40 9 サッカー グッズ 25 10 テニス グッズ 20 11 サッカー ウエア 10 12 野球 グッズ 50 13 テニス シューズ 15 タイトルバーの右部で、右クリック ピボットテーブルビュー 列・行にフィールドをD&D 真中のエリアにフィールド3をD&D 合計に加工して(やり方は http://hamachan4.exblog.jp/4469219/の >集計フィールドを作成する場合は、の部分を参照) ウエア グッズ シューズ 総計 サッカー 40 25 65 テニス 40 20 30 90 野球 60 50 10 120 総計 140 95 40 275 ーー こんなものと質問事項は大幅に違うのだろうか。質問の意味が良く取れなかった。
その他の回答 (1)
- mshr1962
- ベストアンサー率39% (7417/18945)
クロス集計クエリを作れば良いのでは? クロス集計クエリで商品分類毎の構成比の一覧を作成 行見出しに商品分類 列見出しに構成する内容 データを構成比率の合計で 商品分類_合計_ウエア_シューズ_グッズ 野球 100 30 20 50 テニス 100 50 20 30 サッカー 100 30 50 40 ・ ・ と展開させて 商品分類 売上高 野球 100000 テニス 120000 サッカー 80000 ・ ・ のテーブルを使って、新たなクエリで [売上高]*[ウェア],[売上高]*[シューズ],[売上高]*[グッズ]を計算
補足
多分質問内容を誤解されているのだと思いますが・・・ 私も勘違いしていたことがあります。(15項目のファイルは必要ないかもしれません) 最終的なレポートとしては 野球 テニス サッカー 販売高 販売高 販売高 ・ ・ ・ 販売高合計 販売高合計 販売高合計 としたいのですが現状のクエリでは 分類名 販売高 野球 ・ ・ テニス ・ ・ サッカー ・ ・ 別ファイル 分類 販売高合計 野球 テニス サッカー となっております。 (この算出内容にウエア シューズ グッズは関係ありません) 求めるレポート形式をつくりにはクエリを項目事に分割しないと いけないと思うのですが・・・どうでしょうか? 以下がすべての項目の販売高を算出するクエリです。 ・売上高が空白の場合は集計条件からはずしています。 ・データレベルという項目が12の場合のみ抽出しています。 SELECT ■商品分類.分類名, ■調査データ2(商品分類).売上構成, ■調査データ2(商品分類).ウエア, ■調査データ2(商品分類).シューズ, ■調査データ2(商品分類).グッズ, ■調査データ(売上げ).前年度売上高, [前年度売上高]*[売上構成]/100+0.5 AS 販売高, ■店マスタ.データレベル FROM ■店マスタ INNER JOIN (■商品分類 INNER JOIN (■調査データ2(商品分類) INNER JOIN ■調査データ(売上げ) ON ■調査データ2(商品分類).店コード = ■調査データ(売上げ).店コード) ON ■商品分類.分類ID = ■調査データ2(商品分類).分類ID) ON (■店マスタ.店コード = ■調査データ2(商品分類).店コード) AND (■店マスタ.店コード = ■調査データ(売上げ).店コード) WHERE ((Not (■調査データ(売上げ).前年度売上高) Is Null) AND ((■店マスタ.データレベル)="12")); 販売高合計算出クエリ SELECT ●販売高(すべて).分類名, Sum(●販売高(すべて).販売高) AS 販売高の合計 FROM ●販売高(すべて) GROUP BY ●販売高(すべて).分類名;
補足
質問内容の意味が分からなかったようですみませんでした。 私自身も今一理解してない部分がありまして困っています。 質問内容に関しては♯1の補足内容に書かせていただきました。 ピボットテーブルを使用すれば作成できそうですね。 回答ありがとうございました。