Microsoft Access 掲示板

構成率(構成比)の算出の仕方

3 コメント
views
4 フォロー

連投で大変申し訳ありません。
いろいろ調べ、いろいろいじってみましたが、うまく出来ないため、質問させていただきます。

見積番号ごとの見積金額構成率を出したいのですが。

まず、テーブル構造から
「tbl見積Sub」 主キー:見積番号、SubID

見積番号SubID分類ID原価単価見積単価数量品名単位
2305M001-0011150030001AAA
2305M001-0021160032001BBB
2305M001-0032200040001CCC
2305M001-0043210042001CCC
2305M001-005500098001EEE
2305M001-0113150030001AAA
2305M001-0123160032001BBB
2305M001-0134200040001CCC
2305M001-014210042001CCC
2305M001-0155500098001EEE

これを基に集計クエリを作りました。
「qry見積_分類集計」

見積番号分類ID原価金額合計見積金額合計構成率
2305M001-00131006200
2305M001-00216003200
2305M001-00321004200
2305M001-0050009800
2305M001-01331006200
2305M001-01420004000
2305M001-01550009800
2305M001-0121004200

構成率の欄には、最初、DSum関数でしたが、あまりにデータシートビューが開かないため、
サブクエリにしました。
構成率: [見積金額合計]/(SELECT SUM(見積単価 *数量) FROM tbl見積Sub WHERE 見積番号 = [見積番号])
これで開くと、全見積番号の見積金額の合計に対しての構成率が出てしまいます。

サブクエリの記述の仕方がまだ分かりきっていないため、うまく計算されません。

正しいサブクエリの記述の仕方をお教えくださいませ。
または、サブクエリ以外の方法があれば教えてください。

あん
作成: 2023/06/16 (金) 11:31:31
最終更新: 2023/06/16 (金) 11:41:33
通報 ...
1
あん 2023/06/16 (金) 15:59:05 927ea@06086

最終手段としては、見積番号ごとの見積金額集計のクエリを別途作成し、
「qry見積_分類集計」と見積番号で結合させて、構成率を出そうかと思っています。

しかしながら、シンプルに「qry見積_分類集計」だけで何とかならないかと思っています。

2
hatena 2023/06/16 (金) 16:56:14 修正

見積番号 = [見積番号] だと、どちらも見積番号サブクエリ側の同じ見積番号なので常にTrueなるので全体合計になっちゃいますね。別名をつけて区別がつくようにします。

構成率: [見積金額合計]/(SELECT SUM(見積単価 *数量) FROM tbl見積Sub AS T WHERE T.見積番号 = tbl見積Sub.見積番号)

最終手段としては、見積番号ごとの見積金額集計のクエリを別途作成し、
「qry見積_分類集計」と見積番号で結合させて、構成率を出そうかと思っています。

速度的にはこちらの方がはやくなります。
複数のクエリができるのがいやなら、見積番号ごとの見積金額集計のクエリのSQLを「qry見積_分類集計」にサブクエリとして埋め込んでもいいでしょう。

3
あん 2023/06/19 (月) 10:05:19 927ea@06086

hatena様

お教えいただいた式で問題なく表示されました!
これは難しい式ですね。全く想像もしなかった式でした。

速度はこちらでも全く問題なかったので、この式でいこうと思います。

しかし、Dsumは本当に遅すぎました。