お世話になります。
SQL文の作成に難航しています。
どうか知恵を貸してください。
環境:VS2005 Oracl10g
言語:VB.Net
A_TABAL
NO |GroupNO|
1 |A_1
1 |A_1
1 |A_1
B_TABAL
NO |K_NO|K_N
1 |K_1 |項目名1_あ
1 |K_1 |項目名1_い
1 |K_2 |項目名2_あ
1 |K_1 |項目名1_う
1 |K_2 |項目名2_あ
1 |K_2 |項目名2_あ
AテーブルとBテーブルのNOが一致するもので、K_NOがK_1であれば、
項目名1というカラムにいれる。
(複数の場合はカンマ区切りでいれる)
K_NOがK_2であれば、項目名2というカラムにいれる。
(Bテーブルでは
K_1とK_2のレコード数は同じ、実際とってくるときは、NOが同じであれば、重複なものは消すと)
求めたい結果
NO |GroupNO |項目名1 |項目名2
1 |A_1 |項目名1_あ,項目名1_い,項目名1_う|項目名2_あ
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
テストしてないけど、こんな感じかな
select z.NO,z.GroupNO,x.項目名1,y.項目名2
from
(
select NO,sys_connect_by_path(K_N,',') 項目名1
from
(
select b.*,row_number() over(partition by NO,K_NO order by K_N) R
from (select distinct * from B_TABAL where K_NO='K_1') b
)
start with R=1 connect by prior R = R -1 and prior NO=NO
) x,
(
select NO,sys_connect_by_path(K_N,',') 項目名2
from
(
select b.*,row_number() over(partition by NO,K_NO order by K_N) R
from (select distinct * from B_TABAL where K_NO='K_2') b
)
start with R=1 connect by prior R = R -1 and prior NO=NO
) y,
(
select distinct * from A_TABAL
) z
where z.NO=x.NO and z.NO=y.NO
;
返事遅くなってすみません。
これが階層問い合わせというんですか。
ネットで調べてたんですが、関数の使い方がまたっくわからなくて、どうしもなく、ここで質問しました^^;
回答を解析しならが、勉強します。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- Google Maps エクセルについて 2 2022/11/27 11:00
- 会社・職場 ある時、 会社で見積書の依頼を メールで対応してる時の出来事。 見積書な項目8行目の文言が 長すぎる 2 2023/06/10 03:12
- JavaScript jquery 診断コンテンツにチェックボックスを付けたいです 3 2023/01/19 18:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLについて教えて下さい。 主...
-
副問合せにLIKE文を使う方法は...
-
データベースのカラムの型がCHA...
-
Oracleでの登録するユーザーと...
-
batファイルでのSQL(oracle)...
-
ワークテーブルって何?
-
videopad 無料版 アンインストール
-
バッチファイルで複数フォルダ...
-
SQL ブレーク処理について
-
sqlで質問です。 Aテーブルは店...
-
SQLの中上級者へのレベルアップ...
-
SELECTによる表の変換方法を教...
-
開発対象となるアプリケーショ...
-
Oracleですがsqlで質問です。 ...
-
テーブルやカラムの物理名のネ...
-
Oracleで文字列型の時間を引き...
-
orace SQL文のエラー(ORA-0092...
-
私は時々、アイホンを充電する...
-
SQLでの抽出方法について 以下...
-
SQL抽出方法に悩んでいます④
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracle:グループごとに最大日...
-
SQL 複数のテーブルから重複な...
-
1つのカラムに複数レコードの...
-
SQLで小数点のついたべき乗を計...
-
select *, `人口(男)`AND`人口(...
-
set lineで不要な改行が出力さ...
-
アクセス SQLで重複排除でcount...
-
SQLServerのストアドで戻り値取...
-
select実行時のロックとcommit...
-
MAX値を条件にしたSQLで困って...
-
同一テーブル内のデータを比較...
-
2つのselect文をunion all で...
-
order by区の記述位置
-
東芝のDynabookで外付けのDVDド...
-
ブルースクリーンの対処法
-
LAST_DAY関数は?
-
Accessで2つのカラムからユニー...
-
SQL文 テーブル1つに複数のデータ
-
Access2000でディレクトリリス...
-
差し込み後、元データを変更し...
おすすめ情報