• ベストアンサー

絶対値ごとに集計したい

MS Access2000を使っています。 クロス集計のウイザードで、 ある製品の性能別数量を出しています。 性能ごとに、個数があるレコードが複数個あって、 その性能ごとに個数を合計しています。 この『性能』は、数値で-30から、+30まであって、 個別に数を数えているのですが、 クロス集計時には、-30と+30を同じ物として集計したい、 全ての性能数値の絶対値を同じ物として集計したいという 要求があるのですが、どのようにすれば実現するのか判りません。 -5     1 -4     2 -3     3 -2      2 -1     1 0     2 1     2 2     4 3      3 4      2 5     1 を 5     2 4     4 3     6 2      6 1     3 0     2 としたいのです。 どなたかご教授ください。 よろしくお願いします。

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

  • ベストアンサー
noname#22222
noname#22222
回答No.2

SELECT Abs(Data1) , Sum(Table1.data2) FROM Table1 GROUP BY Abs(Data1) ORDER BY Abs(Data1) DESC;

KAZUMI2003
質問者

お礼

ストレートなご指摘ありがとうございます。 参考になりました。

その他の回答 (2)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>全ての性能数値の絶対値を同じ物として集計したい これに関しては何ら問題ないのでは 性能の絶対値を算出する式フィールドを作るだけです それよりクロス集計するにはフィールド数が足りないですね テーブルから性能の絶対値と行見出しようの常数フィールドを持つクエリを作り そのクエリをクロス集計クエリに変えて 常数フィールド:行見出し 式フィールド:列見出し 個数合計とします 結果 絶対値  0  1  2  3  4  5 個数    2  3  6  6  4  2 SQLは TRANSFORM Sum(kazum.個数) AS 個数の合計 SELECT "個数" AS 絶対値 FROM kazum GROUP BY "個数" PIVOT Abs([性能]);

KAZUMI2003
質問者

お礼

詳しい解説ありがとうございます。参考になりました。SQLビューで直接ABS関数を使いました。

  • frogeye
  • ベストアンサー率47% (11/23)
回答No.1

ウィザードをつかったことが無いのではずしているかもしれませんが。 Accessでは「ABS関数」が使えるはずです。 対象フィールドを「ABS([性能])」としてあげれば絶対値が取れると思います。 ウィザードでできたクエリのデザインかSQLのビューで変更できると思います。 これをグループ化してあげれば集計できると思います。

KAZUMI2003
質問者

お礼

abs関数がSQLで使える事を知りませんでした。 ありがとうございました。 良回答は他の方に付けましたが、こちらの回答もとても参考になりました。

関連するQ&A

  • クロス集計クエリについて

    アクセス2000を使っています。 クロス集計クエリのウイザードで下記を作成しましたが合計値が表示されません。 TRANSFORM Sum(納品書.数量) AS 数量の合計 SELECT 納品書.商品名, Sum(納品書.数量) AS [合計 数量] FROM 納品書 GROUP BY 納品書.商品名 PIVOT Format([年月日],"mmm") In ("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"); もともとのレコードは 年月日 商品名 数量 01/01/10 カメラ 50 02/01/15 ラジオ 50 02/01/15 テレビ 30 というような内容です。 #まだウイザード頼りのレベルです。

  • Access レポートで集計

    (1)[詳細]部に数量を表示しています。(ここは複数レコードです。) (2)数量を集計するために[詳細]部にテキストボックスを配置して、集計実行プロパティを  [グループ全体]にしています。 (3)[ページフッター]部に数量の集計結果を表示。 上記の(3)で集計結果が表示されません。何か原因が分かる方がいらっしゃいましたら お教えいただきたいです。 以上です。

  • SQL文でクロス集計をしたい

    アクセスでクロス集計のSQL文で作りたいと思っています。 このようなデータがあります 年月 支払先 数量 金額 201301 A 10 1000 201302 A 5 500 201302 B 20 2000 201301 C 10 3000 201303 C 15 1500 このデータを下記のように表示したいのですが、 分からなくて困っています。 支払先  データ   201301 201302 201303 A 数量     10      5 A 金額 1000 500 B 数量      20 B 金額 2000 C 数量     10 15 C 金額 3000 1500 合計 数量 20 25 15 合計 金額 4000 2500 1500 どのようにすれば実現出来ますか? 今は、 SELECT 支払先, "数量" AS データ, Sum(IIf([年月]='201301',[数量],0)) AS 201301, Sum(IIf([年月]='201302',[数量],0)) AS 201302, Sum(IIf([年月]='201303',[数量],0)) AS 201303, FROM T_データ GROUP BY 支払先; のクロス集計を 数量と金額、数量の合計と金額の合計でクロス集計をしたクエリを UNIONで実現しています。 出来れば数量と金額は1つのクエリで実現したいと思いますが方法があれば教えて頂きたい と思います。 どうぞ、よろしくお願い致します。

  • 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のクエリで集計

    チェックボックスにチェックのあるものの個数を数えたいのですが、クエリの集計でカウントを選び抽出条件にYesを入れても結果がレコード数の数でしか出てきません。集計条件を合計にするとチェックのあるものは-1なのでマイナスの数字が出てきます。どうしたらよいのでしょうか?

  • エクセルの集計について

    エクセル2002を使用しています。 集計ですが、一つの列しかできないのですか? グループで集計するのですが、B列は合計、C列は平均、D列は個数といったふうに、複数の計算を自動でできないのでしょうか? できるようでしたらやり方をお教えください。 宜しくお願い致します。

  • エクセルの集計機能について

    エクセルの集計機能を使う事を最近知りました。 そこで質問なのですが、集計機能で抽出する「集計の方法」があるのですが、抽出するデータの「合計・データの個数・平均・最大値・最小値」をすべて表示させたいのですが、そのような方法はあるのでしょうか? <例> 集計→集計の方法(合計)の場合の表記です。 店名 商品名 数量 1 サティ G社 30 1 サティ G社 1 サティ 計 31 2 ビブレ C社 5 ビブレ 計 5 3 ジャスコ M社 6 3 ジャスコ M社 2 ジャスコ 計 8 総計 44 上記の例では、合計しか抽出されていないのですが、サティでの「合計・データの個数・平均・最大値・最小値」を表示させたいということです。

  • 集計をしたい

    SQLで集計をしたいです。 SQLを始めたばかりの者です。 下記、よろしくお願いします。 説明不足がありましたら、ご指摘をお願いします。 MS-SQLServer2005環境です。 下記の売上テーブルが存在します。 テーブル:UriageTBL 年月日 受注番号 商品コード 商品名 個数  単価  金額 20101001 100   300     リンゴ   1   100   100 20101001 110   400     バナナ   1   150   150 20101001 110   400     バナナ  -1   150  -150 20101001 120   500     キャベツ  1   120   120 20101002 130   500     キャベツ  1   120   120 20101002 140   600     レタス   1   110   110 20101002 140   600     レタス   1   110   110 20101002 150   400     バナナ   1   150   150 ----------------------------- 商品コードに対応する商品グループ(テーブルは存在しません) 商品コード 商品グループ 300     果物 400     果物 500     野菜 600     野菜 ---------------------------- 【結果】 年月日 商品グループ 受注件数 個数合計 金額合計 2010/10/01 果物       1     1     100 2010/01/01 野菜       1     1     100 2010/10/02 果物       1     1     150 2010/10/02 野菜       2     3     340 売上テーブル(UriageTBL)を、年月日別、商品グループ別に集計し、受注件数、個数合計、金額合計を取得したいです。 また、商品コードに商品グループテーブルが存在しない為、SQL内で設定します。 ただし、受注合計金額が0円の時は集計から外します。(受注番号110は集計から外します。) (受注件数は、受注番号の件数です。) 上記の場合、どのようなSQLの組み方をすればよいのか見当もつかず悩んでおります。 どなたかご教授頂ける方がいらっしゃいましたら、よろしくお願い致します。

  • 集計

    同じシートが複数枚あります。内容を集計表に反映させたいのですが方法がわかりません。 数値の合計であれば3-Dや統合等だとおもうのですが、伺いたい方法は「数値」ではなく「文字」の集計です。 Sheet1~5までに各年代別の嗜好品が入力されています。 各シートには性別や住んでいる地域等いくつかの分類もあります。 Sheet6にSheet1~5までの情報(文字)をすべて反映させたいのですがどのようにすれば良いのでしょうか。 今はSheet1~5まで一旦入力してからそれを元にSheet6に再び入力していくという作業をしています。 ご回答、宜しくお願いします。

  • Accessによる集計方法について

    Accessによる集計方法について kamuycikapです。 下記のデータベースを利用して集計作業を行うときの、クエリ作成方法についてご教示願います。 <やりたいこと> キーとなるコード別に数量を合計計算したい。 <データベース> |キー|数量| AAA 1 AAA 3 AAA 4 CCC 5 BBB 2 BBB 9 <求める結果> |キー|合計数量| AAA 8 BBB 11 CCC 5 上記条件でのクエリ作成について、識者様からのアドバイスをお願い致します。 マクロ等のサンプルはGoogle検索でひっかかりましたが、出来る限りクエリでカバーしたいと思いますし、クエリを使えば実現できるのではないかと思っています。 今も、Access起動してクエリを試行錯誤しております。