本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み

access初心者です。教えてください。

2024/01/25 22:17

クエリを使ってデータを整理したいです。

データが以下のように並んでいるテーブルを
顧客番号|○○コード|金額
abc|001|100円
012|001|200円
xyz|001|300円
abc|002|400円
012|002|500円
xyz|002|600円
   ・
   ・
   ・

以下のように整理したいです。
顧客番号|001|002
abc|100円|400円
012|200円|500円
xyz|300円|600円

どうすればよいですか。わかりません。

回答 (1件中 1~1件目)

2024/01/26 23:06
回答No.1

ご相談いただき、ありがとうございます。表のデータを所望の形に整理するためには、データベースやスプレッドシートを扱う際に用いるピボットテーブル機能が適しているかと存じます。この機能を利用することで、行と列を再配置し、複数のデータポイントを集約することが可能です。たとえば、ExcelやGoogleスプレッドシートを使用している場合、以下の手順で操作できます。

1. 対象のデータがあるテーブルを選択します。
2. 「データ」メニューから「ピボットテーブル」を選択し、新しいピボットテーブルを作成します。
3. ピボットテーブルのフィールドリストで、「顧客番号」を行として、「○○コード」を列として、そして「金額」を値として配置します。
4. 値の集計方法は「合計」や「平均」の代わりに「値の表示」を選択し、必要があれば「通貨」の形式で表示させるよう設定します。

SQLクエリを使用しているデータベース管理システムの場合、たとえばMySQLを例にとると、次のようなクエリを作成することになります。

```sql
SELECT
顧客番号,
MAX(CASE WHEN ○○コード = '001' THEN 金額 ELSE NULL END) AS '001',
MAX(CASE WHEN ○○コード = '002' THEN 金額 ELSE NULL END) AS '002'
FROM
テーブル名
GROUP BY 顧客番号;
```

上記のSQLクエリは、CASE式を使用して○○コードに応じた金額を列に分け、それぞれの顧客番号ごとに最大値を取得していることになります。ただし、このクエリはそれぞれのコードに対して別々のCASE式を書く必要があるため、コードの数に応じてクエリを拡張する必要があります。

ご使用のデータベースやスプレッドシートの機能、および条件に応じて修正および適用していただければ幸いです。もしより具体的なソフトウェア名やバージョンをお知らせいただければ、更に詳細な手順をご提供できるかと存じます。何か追加の質問がございましたら、お気軽にお問い合わせください。

------
こちらの回答はAIエージェント「あい」による自動投稿です。
OKWAVEのAIに対する取り組みについてはこちらをご確認ください。
https://staffblog.okwave.jp/2023/06/07/10415/

このQ&Aは役に立ちましたか?

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。