こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Oracle[10g]のSQL文について

ごぶさたしております。Oracle[10g]のSQL文についての
質問です。(No.???)

[A]テーブルに
[CODE](KEY) [CODE2] [NAME] のフィールドがあります。
A-1 B-1 NAME-1
A-2 B-2 NAME-2
A-3 B-3 NAME-3

[B]テーブルに
[CODE2](KEY) [NAME-B] のフィールドがあります。
B-1 NAME-B-1
B-2 NAME-B-2
B-3 NAME-B-3

[C1]テーブルに
[NO](KEY) [LINE](KEY) [CODE] のフィールドがあります。
X 1 A-1
Y 1 A-2

[C2]テーブルに
[NO](KEY) [LINE](KEY) [LINE2](KEY) [BIKO] のフィールドがあります。
X 1 1 BIKO-1
X 1 2 BIKO-2
Y 1 1 BIKO-3

結果が

[NO/LINE/LIN2/NAME-B/BIKO]
X 1 1 NAME-B-1 BIKO-1
X 1 2 NAME-B-1 BIKO-2
Y 1 1 NAME-B-2 BIKO-3

と、なる様にしたいのです。問題は、[B]テーブルです。
今まで、教えていただいた事を参考に頑張ってみましたが、
思う結果がでません。宜しくお願い致します。

投稿日時 - 2005-08-07 15:05:42

QNo.1565163

困ってます

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

1人が「このQ&Aが役に立った」と投票しています

回答(4)

>なぜ、"NAME-B"だけ、""が必要なのか疑問ですが、動きました。

-を項目名に含めるので、そのような記述をしなければならなくなっています。
予約語や記号関係を項目名とするときは、ダブルコーティションによる”正規”の
列名表現を行う必要となります。

>ただ、結果が0件なのです・・・

少なくとも、R9.0.1で正しく結果を得られるSQLを載せましたので、
それで正しく動かないことは考えられません。

投稿日時 - 2005-08-09 13:16:10

お礼

ありがとうございました。
改めて、質問をさせて頂きますので
宜しくお願い致します。

投稿日時 - 2005-08-09 13:46:16

一行目の列名記述を見直すことでちゃんと動きます。
("C2.LINE"も箇所が、"C2,LINE"になっていた)

最終的に、次のSQLでちゃんと動作確認できています。
select C2.NO,C2.LINE,C2.LINE2,B."NAME-B",C2.BIKO
from C2,C1,A,B
where
C2.NO=C1.NO and C2.LINE=C1.LINE and
C1.CODE=A.CODE and
A.CODE2=B.CODE2
;

投稿日時 - 2005-08-09 00:26:47

補足

ありがとうございます。なぜ、"NAME-B"だけ、
""が必要なのか疑問ですが、動きました。

ただ、結果が0件なのです・・・
非常にわがままなのは、十分承知しております。
すみません。宜しくお願い致します。

投稿日時 - 2005-08-09 12:01:17

列名が問題あるのであれば..

select C2.NO,C2,LINE,C2.LINE2,B."NAME-B",C2.BIKO
from C2,C1,A,B
where
C2.NO=C1.NO and C2.LINE=C1.LINE and
C1.CODE=A.CODE and
A.CODE2=B.CODE2
;

で直るんじゃないかと思うのですが・・。

投稿日時 - 2005-08-08 10:25:43

補足

何度もありがとうございます。
「列の定義が未確定です」のエラーに
なってしまいます。(;_;)

宜しくお願い致します。

投稿日時 - 2005-08-08 15:30:24

単純に全てのテーブルを結合するだけで良いんじゃないですか?

select C2.NO,C2,LINE,C2.LINE2,B.NAME,C2.BIKO
from C2,C1,A,B
where
C2.NO=C1.NO and C2.LINE=C1.LINE and
C1.CODE=A.CODE and
A.CODE2=B.CODE2
;

投稿日時 - 2005-08-08 01:52:44

補足

ご回答をありがとうございます。
>B.NAME
で、エラーになったので、[B.NAME-B]に置き換えました。が、「"B":無効な識別子です」と
なぜか、エラーになってしまいます。

続けてのご指導をお願い致します。

投稿日時 - 2005-08-08 10:17:36

あなたにオススメの質問