Accessクエリで分類ごとの累計を計算する方法

このQ&Aのポイント
  • Accessクエリを使用して、大分類ごとに月ごとの累計を計算する方法について知りたいです。
  • テーブルのデータをクエリに読み込んで、大分類IDと小分類IDの組合せを元に、月ごとの累計金額を算出したいです。
  • DSUM関数を使用した際に、条件式を正しく設定する方法が分かりません。アドバイスをいただけると助かります。
回答を見る
  • ベストアンサー

Accessクエリで分類ごとの累計を計算する方法

テーブルのデータをクエリに読み込んで、大分類ID-小分類IDの組合せを元にして、 月々の累計を計算したいのですが、算出式がどうしてもわかりません。 DSUMを使えばいいかなと思い、クエリのフィールドに、 累計:DSUM("金額","tbl_sample",    ) のような感じでやってみたのですが、条件式をどういれてよいかわかりません。 もし分かる方がいらっしゃればお知恵をお貸しください。よろしくお願いします。 イメージ的には以下のような感じで、★箇所のような累計結果を算出したいです。 ------------------------------------------------------------ 元のテーブルファイル名:tbl_sample 月 大分類ID 小分類ID 金額 ★累計 4___1___1___\100_\100 4___1___2___\200_\200 4___2___1___\300_\300 4___2___2___\400_\400 5___1___1___\150_\250 5___1___2___\250_\450 5___2___1___\350_\650 5___2___2___\450_\850 --------------------------------------------------------------

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

累計:dsum("金額","tbl_sample","大分類ID=" & 大分類ID & " And 小分類ID=" & 小分類ID & " And 月<=" & 月) だとどうでしょう。 ここを読んでもらった方が早くて確実。 http://www.moug.net/tech/acvba/0080017.html

acchandesu
質問者

お礼

できました。ありがとうございました。 データ数が非常に多いため、処理に時間がかかるようです。 他の方法ってありませんか?

関連するQ&A

  • Access 2000ひと月単位で一日ごとの累計を出したいのですが・・・。

    いろいろ探して、 累計: DSum("新規","日報","[日付]<=#" & [日付] & "#") という、式をクエリに貼り付けたのですが、これだと、月ごとの累計にならず、困っています。どなたか、お教えいただけないでしょうか ID   日付    年月   新規  累計 1  2008/10/20  2008/10   1   1 2  2008/10/25  2008/10   1   2 3  2008/11/05  2008/11   2   4 ⇒ 2 4  2008/11/10  2008/11   1   5 ⇒ 3 5  2008/11/15  2008/11   2   7 ⇒ 5 6  2008/11/20  2008/11   1   8 ⇒ 6 7  2008/11/25  2008/11   1   9 ⇒ 7 8  2008/11/30  2008/11   2   11 ⇒ 9 9  2008/12/05  2008/12   1   12 ⇒ 1 10  2008/12/10  2008/12   2   14 ⇒ 3 一度クエリで11月(2008/11)だけにしてからやればよいと思ったのですが、DSum関数がテーブルからしか作れないようで、うまくいきません。お願いします。

  • Access2007 クエリ 累計求め方

    以下の並びの選択クエリがあります。 [営業担当] [担当企業] [受注フラグ] [月] [累計] 月は昇順で増えていきます。 受注フラグは全て「1」と表示されています。 受注フラグを合計して、月次の累計推移を出したいと考えています。 【累計】のフィールドにDsum(式)を活用する所までは分かりましたが、 (式)内にどの様な式を指定すればよいか分かりません。 どなたかご教授頂ければ幸いです。

  • アクセス・クエリでのテキスト累計

    お世話になります。アクセス初心者です。 QNo.3023548 「アクセス 同じフィールド(テキスト型)のレコードを連結させたい」 の方と同じ質問内容で申し訳ありません。 私のレベルでは、うまく理解することが出来ませんでした。 あらためまして マイクロソフト アクセス 2000を使用しております。 【テーブル1】 ID 商品コード 金額  色 1______100__________\10______赤 2______100__________\10______青 3______200__________\10______黄 4______200__________\10______緑 5______200__________\10______黒 【クエリ1】 ID 商品コード 金額  色  累計金額  色の累計 1______100__________\10______赤__________\10____________赤 2______100__________\10______青__________\20____________赤-青 3______200__________\10______黄__________\10____________黄 4______200__________\10______緑__________\20____________黄-緑 5______200__________\10______黒__________\30____________黄-緑-黒 累計金額は式ビルダで 累計金額: (Select SUM(金額) From テーブル1 As 累計 Where テーブル1.ID >= 累計.ID And テーブル1.商品コード = 累計.商品コード) なんとか作る事が出来ました。 色の累計を、この式を使って試みましたが うまくいきません。 できれば、式ビルダ形式で回答を頂くとありがたいです。 よろしくお願い致します。

  • Access クエリでの 累計の仕方

    テーブル名「元帳」のフィールド名「借方金額」の累計を、「科目コード」と「月度」が同じもので累計する処理を行っています。以下の書き方で、全ての累計は出力出来ました。 (1) DSum("借方金額","元帳","科目コード & 月度 <= " & [科目コード] & [月度]) そして、科目コードが変化する毎にそれぞれの累計を行いたいと思い、以下の式を作成しました。 (2) DSum("借方金額","元帳","科目コード Like '*" & [科目コード] & "*'") そして、これら2つの式の要素を合わせ持った式を作成しようとAndで繋いでみたのですが、 (3) DSum("借方金額","元帳","科目コード Like '*" & [科目コード] & "*'" And "科目コード & 月度 <= " & [科目コード] & [月度]) これでは数字が出ず、どうしても出来ません。 (1)と(2)の条件を合わせ持った式の作り方をご存知の方がいらっしゃいましたら、ご教示をお願い致します。

  • ACCESSのクエリ計算

    Access2003でクエリで特定条件に一致するIDを出して 今度はそのそれぞれのIDから+100(IDが2なら2~102の範囲でというように)の元のテーブルの 値の中からフィールド1が5以上の条件に一致するものの最小のIDをもとめたいと思ってます。 始めたばかりの初心者です DMINでできるのかなと思って下記式にしてみたのですが パラメーターエラーでうまくいかなくて、、 DMin("[テーブル1].ID","[テーブル1]","[テーブル1].ID>=[クエリ1].ID&[ID]<[クエリ1].ID+100&[テーブル1]フィールド2>5")

  • ACCESS97 クエリーのフィールド計算式

    テーブルでフィールド名に金額1~金額31と日別毎に項目分けしているテーブルがあります これをクエリーにて金額:[金額1]+[金額2]・・・[金額31]と一月分集計したいのですが フィールドにこの式を書くのが長くなり過ぎてスッキリさせたいです そのような式ってあるのでしょうか? 例えば、金額:[金額1]~[金額31] みたいな感じで 上手く説明出来ませんが、宜しくお願いします。

  • アクセス クエリで計算式の累積

    クエリ名前クエリに 式1:A+Bのように記入いたしました。  式1の累積の式を 式2に入れたいのですがどのように記載したらよろしいのでしょうか? DSum("式1","クエリ","ID<=" & [ID])ではうまくいきません。

  • Access 分類分け クエリの作成方法について

    商品分類項目に野球 テニス サッカー等の項目が15以上あります。 その各項目にウエア シューズ グッズ 構成比率とあります。 テーブルを作成するときに構成比率 ウエア シューズ グッズ 分類IDとフィールドを作成し、項目事に分類IDを振り分けました。 野球販売高を算出するには売上高*野球構成比/100*0.5と計算します。 クエリでこれらを計算するには抽出条件で15項目のファイルを作成する必要がありますよね さらに計算する1項目につき1ファイル必要ですよね 算出するのは野球販売高だけではなく、テニス販売高、サッカー販売高 と項目事に必要です。 計算項目はこれ以外にも14あり、それらを上記の方法で算出するとファイル数が膨大になります。 Accessではクエリの数が数十個になるのは普通なのでしょうか?

  • 条件を満たした次のレコードから

    初めまして(^^ ACCESSのクエリでの質問をさせて頂きます。(^^;; テーブルA  ID,重量 と2つのフィールドを持ったテーブルAがあるとします。 テーブルB (金額テーブル kg/円) 10t以下,10t以上 と2つのフィールドを持ったテーブルBがあるとします。 (内容は 10t以下: 11円 10t以上:10円) 上記のテーブルAとテーブルBのデータを使用してクエリAを作成します。 クエリA(テーブルBはテーブル表示にてクエリA内に表示させてあります。) 既存のフィールド: ID,重量 新に作成するフィールド:累計重量,金額  ID ←そのまま表示 重量 ←そのまま表示 累計重量: DSum("重量","テーブルA","ID<=" & [ID] & "") ←累計の重量を算出 金額: IIf(DSum("重量","テーブルA","ID<=" & [ID] & "")<=10000,Int([テーブルB]![10t以下]*[重量]),([テーブルB]![10t以上]*[重量]))  ↑ 累計重量で10t以下と10t以上の金額の割合を変更して算出させる。 テーブルAのデータとして↓ ID 重量 1 1000.6 2 2150.7 3 1821.2 4 5578.3 5 650.5 上記内容にてクエリAを実行すると多分下記の様に表示されます。 ID 重量   累計重量    金額 1 1000.6  1000.6   11006 2 2150.7   3151.3   23657 3 1821.2   4972.5   20033 4 5578.3  10550.8   55783  5  650.5   11201.3   6505 でも本当は下記の様な結果を得たいのです。 ID 重量   累計重量  金額 1 1000.6  1000.6  11006 2 2150.7  3151.3  23657 3 1821.2   4972.5  20033 4 5578.3   10550.8  61361 ←累計で10tを超えたレコードまでは1kg/11円で計算させたい。 5  650.5  11201.3  6505 ←ここから 1kg/10円の計算にしたい。 望む結果を得るためには下記の文にて条件を付け足していくと思いますが 金額: IIf(DSum("重量","テーブルA","ID<=" & [ID] & "")<=10000,Int([テーブルB]![10t以下]*[重量]),([テーブルB]![10t以上]*[重量])) どのような条件の付け方をすれば良いか、困ってしまいました。そのものズバリの答えをお聞きするには余りにずうずうしいと思いますので、 ヒントや似たような感じの例などをご教示頂けたらと思います。 何卒、宜しく御願い致します。

  • Access 2000 ひと月単位で一日ごとの累計を出したいのですが・・・。

    いろいろ探して、 累計: DSum("新規","日報","[日付]<=#" & [日付] & "#") という、式をクエリに貼り付けたのですが、これだと、月ごとの累計にならず、困っています。どなたか、お教えいただけないでしょうか ID   日付    年月   新規  累計 1  2008/10/20  2008/10   1   1 2  2008/10/25  2008/10   1   2 3  2008/11/05  2008/11   2   4 ⇒ 2 4  2008/11/10  2008/11   1   5 ⇒ 3 5  2008/11/15  2008/11   2   7 ⇒ 5 6  2008/11/20  2008/11   1   8 ⇒ 6 7  2008/11/25  2008/11   1   9 ⇒ 7 8  2008/11/30  2008/11   2   11 ⇒ 9 9  2008/12/05  2008/12   1   12 ⇒ 1 10  2008/12/10  2008/12   2   14 ⇒ 3 とにかく、その「日付」の月の初めから、その「日付」の日までの累計が、その「日付」の累計の列に入ればよいのですが、よろしくお願い致します。

専門家に質問してみよう