- ベストアンサー
アクセス2003の集計について
- アクセス初心者が工事管理システムを作成している際に、テーブル「受注」のデータを元に担当者ごとの月ごとの合計金額を計算したい。
- テーブル「受注」には契約日、工事内容、担当者1、担当者1の売上金額、担当者2、担当者2の売上金額などのデータがある。
- 担当者が複数人いる工事ごとに、担当者ごとの割合で計算された金額を月ごとに合計し、結果を表示したい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
「月ごとに」という条件を見落としてました。 年月でグループ化するという意味なら、ユニオンクエリを下記のようにして、 SELECT Format(契約日,"yyyy/mm") AS 年月, 担当1 AS 担当, 担当1売上金額 AS 売上金額 FROM 受注 WHERE 担当1 <> "" UNION ALL SELECT Format(契約日,"yyyy/mm") AS 年月, 担当2 AS 担当, 担当2売上金額 AS 売上金額 FROM 受注 WHERE 担当2 <> "" UNION ALL SELECT Format(契約日,"yyyy/mm") AS 年月, 担当3 AS 担当, 担当3売上金額 AS 売上金額 FROM 受注 WHERE 担当3 <> "" UNION ALL SELECT Format(契約日,"yyyy/mm") AS 年月, 担当4 AS 担当, 担当4売上金額 AS 売上金額 FROM 受注 WHERE 担当4 <> ""; 集計クエリで、 年月 グループ化、担当 グループ化、売上金額 合計 としてください。
その他の回答 (3)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
- hatena1989
- ベストアンサー率87% (378/433)
No1.さんも言われているようにテーブル設計を見直すべきですね。 ただ、そうもいかない場合もあるかもしれませんので、まずは現状のままでいくなら、 クエリの新規作成でテーブルを追加せずにSQLビューにして下記のようにSQL文を記述します。 SELECT 担当1 AS 担当, 担当1売上金額 AS 売上金額 FROM 受注 WHERE 担当1 <> "" UNION ALL SELECT 担当2 AS 担当, 担当2売上金額 AS 売上金額 FROM 受注 WHERE 担当2 <> "" UNION ALL SELECT 担当3 AS 担当, 担当3売上金額 AS 売上金額 FROM 受注 WHERE 担当3 <> "" UNION ALL SELECT 担当4 AS 担当, 担当4売上金額 AS 売上金額 FROM 受注 WHERE 担当4 <> ""; これはユニオンクエリというものになります。 このクエリを元に集計クエリを作成して、 担当 を グループ化、売上金額 を 合計 にすれば希望の結果になります。 可能ならば、No1.さんの図示されたテーブルに変更されることを強くお勧めします。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
お礼
hatena1989さん 丁寧なご説明と回答ありがとうございます。 希望通りに集計出来ました。 今後ユニオンクエリを勉強していきたいと思います。 ありがとうございました。