みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

締切り済みの質問

SQLについて

以下のSQLを実行すると。
SQL実行中に以下のエラーが発生しました。
エラーコード:907 [Oracle][ODBC][Ora]ORA-00907: 右カッコがありません。
というエラーが表示されます。
どこがおかしいでしょうか?

SELECT
Q1.Pコード,
Q1.Qコード,
T1.E名称 A名称,
T2.E名称 B名称,
T3.E名称 C名称,
T4.E名称 D名称,
FROM
(
(
(
(
SELECT
Pコード,
Qコード,
Aコード,
Bコード,
Cコード,
Dコード,
FROM
報告書
WHERE
Pコード = '0001' AND
Qコード = '0001' AND
) Q1 INNER JOIN Eマスタ T1
ON Q1.Aコード = T1.Eコード
) INNER JOIN Eマスタ T2
ON Q1.Bコード = T2.Eコード
) INNER JOIN Eマスタ T3
ON Q1.Cコード = T3.Eコード
) INNER JOIN Eマスタ T4
ON Q1.Dコード = T4.Eコード
ORDER BY
Pコード,
Qコード;

投稿日時 - 2004-03-31 17:37:03

QNo.819638

困ってます

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

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

回答(2)

ANo.2

もう一点だけ。
これも記述ミスかもしれませんが・・・。
ほかは、合ってると思います。
テーブル構造が不明なので、構文しかみれませんが。

SELECT
Q1.Pコード,
Q1.Qコード,
T1.E名称 A名称,
T2.E名称 B名称,
T3.E名称 C名称,
T4.E名称 D名称
FROM
(
(
(
(
SELECT
Pコード,
Qコード,
Aコード,
Bコード,
Cコード,
Dコード 
FROM
報告書
WHERE
Pコード = '0001' AND
Qコード = '0001' AND       ← AND不要
) Q1 INNER JOIN Eマスタ T1
ON Q1.Aコード = T1.Eコード
) INNER JOIN Eマスタ T2
ON Q1.Bコード = T2.Eコード
) INNER JOIN Eマスタ T3
ON Q1.Cコード = T3.Eコード
) INNER JOIN Eマスタ T4
ON Q1.Dコード = T4.Eコード
ORDER BY
Pコード,
Qコード;

投稿日時 - 2004-03-31 22:05:46

補足

すみません。そこも記述ミスでした。
OracleでテーブルのJOINに制限とかあるのでしょうか?

投稿日時 - 2004-04-01 14:39:16

ANo.1

間違ってたらすんません。
下記2点がおかしいような気がしました。

SELECT
Q1.Pコード,
Q1.Qコード,
T1.E名称 A名称,
T2.E名称 B名称,
T3.E名称 C名称,
T4.E名称 D名称,        ←カンマ不要
FROM
(
(
(
(
SELECT
Pコード,
Qコード,
Aコード,
Bコード,
Cコード,
Dコード,            ←カンマ不要
FROM
報告書
WHERE
Pコード = '0001' AND
Qコード = '0001' AND
) Q1 INNER JOIN Eマスタ T1
ON Q1.Aコード = T1.Eコード
) INNER JOIN Eマスタ T2
ON Q1.Bコード = T2.Eコード
) INNER JOIN Eマスタ T3
ON Q1.Cコード = T3.Eコード
) INNER JOIN Eマスタ T4
ON Q1.Dコード = T4.Eコード
ORDER BY
Pコード,
Qコード;

投稿日時 - 2004-03-31 20:16:00

補足

すみません。そこはただの記述ミスでした。
2箇所のカンマ抜きでよろしくお願いします。

投稿日時 - 2004-03-31 20:30:04

あなたにオススメの質問