2016-08-12 54 views
-1

SQL Developerを使用してビューを作成しようとしていますが、奇妙なエラーが発生しています。右括弧が欠けているようですが、私がどこで助けてくれるのか分かりません。SQL右括弧がありません

INPUT:

CREATE OR REPLACE VIEW MAST_SOMME_POINTS_CLUBS AS 
    (SELECT C.NOM, SUM(R.POINTS) AS POINTS 
    FROM MAST_CLUBS C 
    JOIN MAST_NAGEURS N USING(CLUB) 
    JOIN MAST_RESULTATS R USING(NRLIGUE) 
    GROUP BY (C.CLUB, C.NOM) 
    ORDER BY C.NOM); 

OUTPUT:

Erreur commençant à la ligne: 1 de la commande - 
CREATE OR REPLACE VIEW MAST_SOMME_POINTS_CLUBS AS 
    (SELECT C.NOM, SUM(R.POINTS) AS POINTS 
    FROM MAST_CLUBS C 
    JOIN MAST_NAGEURS N USING(CLUB) 
    JOIN MAST_RESULTATS R USING(NRLIGUE) 
    GROUP BY (C.CLUB, C.NOM) 
    ORDER BY C.NOM) 
Rapport d'erreur - 
Erreur SQL : ORA-00907: missing right parenthesis 
00907. 00000 - "missing right parenthesis" 
*Cause:  
*Action: 

答えて

0

だけで、不要な括弧を使用しないよう:

CREATE OR REPLACE VIEW MAST_SOMME_POINTS_CLUBS AS 
    SELECT 
     C.NOM, 
     SUM(R.POINTS) AS POINTS 
    FROM 
     MAST_CLUBS C 
    JOIN 
     MAST_NAGEURS N 
     USING (CLUB) 
    JOIN 
     MAST_RESULTATS R 
     USING (NRLIGUE) 
    GROUP BY 
     C.CLUB, -- Is this intentional? It is not in your SELECT 
     C.NOM 
    ORDER BY NOM; 

ヒントとして:きれいにうまくレイアウトされ、構造化あなたのコードを維持するのに役立ちます多くの問題を避ける。

+0

あなたが正しいです!私はあなたのコメントに書いたことを話して、私は最初にそれが主キーであるためにそこにいなければならないと考えましたが、それは避けてはいけません:P私はそれを削除し、それは私の問題を解決しました。 –

+0

@AxelSamyn - これはコードをきれいに構築する利点です。 :-) – Nicarus

+0

@AxelSamyn - C.CLUBはそこにはいけないと確信していますか?それがなければ、すべてのクラブ(会員が複数のクラブに所属している場合)に会員のポイントを得ることができます。それはあなたのビジネスにとって理にかなっていますか?そうでなければ、C.CLUBをGROUP BY **と**のSELECTの両方に置いてください。そして、メンバーとクラブの組み合わせ(2つの異なるクラブのメンバーの2つの行)でポイント合計が得られます。 – mathguy

関連する問題