テーブル1
販売店名 品名 金額
A販売店/いちご/500円
A販売店/みかん/300円
A販売店/りんご/800円
B販売店/いちご/500円
B販売店/みかん/300円
B販売店/りんご/800円
B販売店/ばなな/400円
C販売店/いちご/500円
C販売店/みかん/300円
C販売店/りんご/800円
テーブル2
販売店名 品名1 品名2 品名3 品名4
A販売店/いちご/みかん/りんご
B販売店/いちご/みかん/りんご/ばなな
C販売店/いちご/みかん/りんご
これを下記のように結合したい
販売店名 品名1 金額 品名2 金額 品名3 金額 品名4 金額
A販売店/いちご/500円/みかん/300円/りんご/800円
B販売店/いちご/500円/みかん/300円/りんご/800円/ばなな/400円
C販売店/いちご/500円/みかん/300円/りんご/800円
どのようにすればよいでしょうか?
クエリーだけでも可能ですかね?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
2つの方法で
金額部分は数値であるとします
なお、希望の最終形表示での、"金額" ・・・
同じ文字列のフィールドは作成できないので 金額1、金額2 ・・・
1)DLookup を使う
SELECT 販売店名,
品名1,
DLookup("金額","テーブル1","販売店名='" & 販売店名
& "' AND 品名='" & 品名1 & "'") AS 金額1,
品名2,
DLookup("金額","テーブル1","販売店名='" & 販売店名
& "' AND 品名='" & 品名2 & "'") AS 金額2,
品名3,
DLookup("金額","テーブル1","販売店名='" & 販売店名
& "' AND 品名='" & 品名3 & "'") AS 金額3,
品名4,
DLookup("金額","テーブル1","販売店名='" & 販売店名
& "' AND 品名='" & 品名4 & "'") AS 金額4
FROM テーブル2;
2)クロス集計を使う
以下内容で、クエリ ★★ を作っておいて
SELECT 1 AS 順, 販売店名, 品名1 AS 品名 FROM テーブル2
WHERE 品名1 Is Not Null
UNION ALL
SELECT 2, 販売店名, 品名2 FROM テーブル2
WHERE 品名2 Is Not Null
UNION ALL
SELECT 3, 販売店名, 品名3 FROM テーブル2
WHERE 品名3 Is Not Null
UNION ALL
SELECT 4, 販売店名, 品名4 FROM テーブル2
WHERE 品名4 Is Not Null;
以下のクロス集計で最終形にする
TRANSFORM First(IIF(S=1,Q2.品名,Q2.金額)) AS 値
SELECT Q1.販売店名 FROM (
SELECT 1 AS S, * FROM ★★
UNION ALL
SELECT 2, * FROM ★★) AS Q1
INNER JOIN テーブル1 AS Q2
ON Q1.販売店名=Q2.販売店名 AND Q1.品名=Q2.品名
GROUP BY Q1.販売店名
PIVOT IIF(S=1,'品名','金額') & Q1.順
IN ('品名1','金額1','品名2','金額2','品名3','金額3','品名4','金額4');
余談)テーブル1だけからでも以下の様な表示は可能
どのように表示されるのかは、実際にやってみてください
TRANSFORM Sum(金額) AS 値
SELECT 販売店名, Sum(金額) AS 計 FROM (
SELECT 1 AS T, 販売店名, 品名, 金額 FROM テーブル1
UNION ALL
SELECT 2, '合計', 品名, 金額 FROM テーブル1) AS Q1
GROUP BY T, 販売店名
PIVOT 品名;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- その他(教育・科学・学問) ある店舗はA商品を原価200円で仕入れ280円で販売し、B商品を300円で仕入れ460円で販売する計 2 2023/01/16 16:10
- 会社経営 定価7万円 A社 メーカー B社 販売店(卸) C社 販売店(小売) B社はA社から商品を仕入れてC 2 2022/11/21 17:51
- 高校 高校 数学 一次不等式を使った文章問題がわかりません。分かる人教えて下さい! 問題は以下のとおりです 3 2022/06/12 15:09
- 就職 就職先 どちら 2 2022/09/29 18:54
- USBメモリー・SDカード・フラッシュメモリー DAISOには、どうして本物のSDカードが売られていないのでしょうか。 (SDカードリーダーや、SD 8 2022/08/18 17:01
- その他(ビジネス・キャリア) 皆さんならどちらを選びますか? なるべく長く勤めていたいです。 ①sns運用事務スタッフ SNSを活 1 2022/05/08 21:03
- 日用品・生活雑貨 「SR-927W」というボタン電池を安く売っている店を教えて下さい。 6 2022/10/29 10:41
- 子育て どちらが長く勤めれそうですかね? 小学生低学年とこどもと保育園のこどもがいます。 皆さんならどちらを 4 2022/05/09 15:03
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのフィルタ抽出が固まる
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessを開きなおすとテキスト...
-
データベースファイル(.db)を開...
-
Excelフィルタ抽出で「検索して...
-
20万行あるデータを動かしたい
-
Accessフォームからパラメータ...
-
データベースとウェブ(WWW)の共...
-
構文エラー:演算子がありませ...
-
「1004:アプリケーション定義...
-
テキストボックスにコントロー...
-
シャープレジスター エラーコード
-
顧客データベースを作る場合、...
-
QRコードとバーコードについて
-
日通NECロジスティクスの追跡サ...
-
Notion@リレーション値の取得...
-
MS access2021で販売管理を作成...
-
エクセル 顧客管理表に担当ごと...
-
最新の日付とその金額をクエリ...
-
FileMaker Pro 10 で令和を表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
こういうSELECTは可能でしょうか?
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
select句副問い合わせ 値の個...
-
ADO VBA 実行時エラー3021
-
SELECTの結果で同一行を複数回...
-
カレントレコードが無い事を判...
-
キーが同じを複数行を1行にま...
-
Access終了時の最適化が失敗?
-
Date型にNULLをセットしたい V...
-
レコードが存在しなかった場合
-
実績累計の求め方と意味を教え...
-
Excelでセルの書式設定を使用し...
-
SQL文で素早くNULLを除外する方法
-
MERGE文を単体テーブルに対して...
-
ファイル書込みで一行もしくは...
おすすめ情報