SQLの表結合についてですが、以下のような2つのテーブルを結合する場合、
表A
ID,RENBAN,NO,NO1,NO2
1,1,1,1,0
1,2,2,1,2
表B
ID,KUBUN,NO,SYOUSAI_NO
1,1,1,11111
1,1,2,22222
1,2,1,33333
1,2,2,44444
表BのKUBUNが1の場合、
from 表A inner join 表B on 表A.ID = 表B.ID and 表A.NO = 表B.NO
表BのKUBUNが2の場合、
from 表A inner join 表B on 表A.ID = 表B.ID and 表A.NO1 = 表B.NO
および
from 表A inner join 表B on 表A.ID = 表B.ID and 表A.NO2 = 表B.NO
とした場合、以下の最終結果にしたいのですが・・・
ID,RENBAN,NO(SYOUSAI_NO),NO1(SYOUSAI_NO),NO2(SYOUSAI_NO)
1,1,11111,33333,
1,2,22222,33333,44444
そもそもこれは可能なのでしょうか?
意味わからなければ補足致します。
ご教示いただけますでしょうか?
No.1ベストアンサー
- 回答日時:
表AのそれぞれのID & RENBANについて、3つのJOIN式に該当する表Bのデータがそれぞれ「2件以上ない」ことが保証されているテーブル構造であるなら、以下のクエリで可能です。
SELECT
a.ID,
a.RENBAN,
MAX(CASE WHEN b.KUBUN=1 AND b.NO=a.NO THEN b.SHOUSAI_NO END) "NO(SHOUSAI_NO)",
MAX(CASE WHEN b.KUBUN=2 AND b.NO=a.NO1 THEN b.SHOUSAI_NO END) "NO1(SHOUSAI_NO)",
MAX(CASE WHEN b.KUBUN=2 AND b.NO=a.NO2 THEN b.SHOUSAI_NO END) "NO2(SHOUSAI_NO)"
FROM 表A a
INNER JOIN 表B b ON b.ID=a.ID and
((b.KUBUN=1 AND b.NO=a.NO) OR (b.KUBUN=2 AND b.NO=a.NO1) OR (b.KUBUN=2 AND b.NO=a.NO2))
GROUP BY a.ID,a.RENBAN
ORDER BY 1,2
このように表示する意味はわかりませんが、可能は可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- 英語 不定代名詞"no..."の否定語noの及び範囲について 4 2022/08/04 11:11
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- 英語 1単語及び2単語の「no~」を受ける単語について 1 2022/11/07 11:54
- 英語 英文の経済記事ですが、 4 2022/07/23 18:01
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
select insertで複数テーブルか...
-
GROUP BYを行った後に結合した...
-
固定値を含む結合と複数テーブ...
-
SQL GROUPで件数の一番多いレコ...
-
Accessで日付が変わると番号が...
-
access 自動採番 年が変わる...
-
[VBA] ADOの Clone と AddNew
-
access 自動採番 「10-AA-000...
-
SQLServer 日付が直前のレコー...
-
ヤマト急便のチェックデジット...
-
Line Inputで文字化け(助けて...
-
Accessで別テーブルの値をフォ...
-
SQL文で右から1文字だけ削除す...
-
複数行を1行にするSQL
-
キーが同じを複数行を1行にま...
-
ACCESS VBA テーブルデータに...
-
実績累計の求め方と意味を教え...
-
MySQL のデータからドロップダ...
-
Access2000での複合検索再び
-
抽出したデータを修正して元の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
他のテーブルを参照した値はupd...
-
SET句内で複数の条件を指定して...
-
固定値を含む結合と複数テーブ...
-
SQL GROUPで件数の一番多いレコ...
-
oracleの分割delete
-
外部結合とor条件混在の記述方法
-
unionの結果は集計はできないで...
-
複数テーブルのMAX値の行データ...
-
unionでマージした副問合せを結合
-
集計後の数値が倍になる
-
構成比を求めるSQL文につきまして
-
COUNTの取得方法(?)について...
-
SQLの書き方(チェックボックス)
-
結合と副問い合わせの違い
-
DELETE 文とEXISTSの使い方につ...
おすすめ情報