C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ある区分ごとの直積を1回のSQL実行で得たい


(過去ログ 121 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■72500 / inTopicNo.1)  ある区分ごとの直積を1回のSQL実行で得たい
  
□投稿者/ やっち (5回)-(2014/06/12(Thu) 17:10:12)

分類:[データベース全般] 

2014/06/12(Thu) 17:25:53 編集(投稿者)
2014/06/12(Thu) 17:25:43 編集(投稿者)

<pre><pre>こんにちは。
たびたびお世話になっています。

●テーブルA
  区分A | 区分B | 区分C |
 -------+-------+-------+
  110 | 10 | 01 |
  110 | 20 | 02 |
  110 | 30 | 01 |
  120 | 10 | 01 |
  120 | 20 | 01 |
  120 | 30 | 03 |

上記のようなテーブルAから、次のような結果を得たいです。

●結果
  区分A | 区分B | 区分C |
 -------+-------+-------+
  110 | 10 | 01 |
  110 | 10 | 02 |
  110 | 20 | 01 |
  110 | 20 | 02 |
  110 | 30 | 01 |
  110 | 30 | 02 |
  120 | 10 | 01 |
  120 | 10 | 03 |
  120 | 20 | 01 |
  120 | 20 | 03 |
  120 | 30 | 01 |
  120 | 30 | 03 |

つまり、区分Aごとの、区分Bと区分Cの直積を作りたいです。
しかも一本のSQLでやりたいのですが、途方に暮れています。
だれかアドバイスいただけませんか。

select distinct 区分A from テーブルA
に直積を結合できないかなーとか考えてみましたが、うーん...。

今回はOracle11gでーす。</pre></pre>
引用返信 編集キー/
■72501 / inTopicNo.2)  Re[1]: ある区分ごとの直積を1回のSQL実行で得たい
□投稿者/ shu (593回)-(2014/06/12(Thu) 17:42:00)
No72500 (やっち さん) に返信

Select AB.区分A, AB.区分B, AC.区分C
From
(Select distinct 区分A, 区分B From テーブルA) AB
inner join
(Select distinct 区分A, 区分C From テーブルB) AC
on AB.区分A = AC.区分A

こんな感じで出来ないでしょうか?
試していません。
引用返信 編集キー/
■72546 / inTopicNo.3)  Re[2]: ある区分ごとの直積を1回のSQL実行で得たい
□投稿者/ やっち (6回)-(2014/06/16(Mon) 10:40:30)
No72501 (shu さん) に返信

確認が遅くなりまして、すみません。
すごいですね。思いもつかない方法でした。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -