ORA-00933 SQL COMMAND NOT PROPRELLY ENDED (a

Fermé
David - 15 oct. 2007 à 01:21
 Francois - 21 sept. 2010 à 10:00
Bonjour,
Je de travail sur TOAD, et PL/SQL developer, et les deux me donnent la meme erreur sur l'execution du bout de code que voici, et qui est ""ORA-00933 SAL COMMAND NOT PROPRELLY ENDED"" (a l'aide :-( ) :

CREATE OR REPLACE VIEW V_FOR_8311_DEPART AS
SELECT DISTINCT
XX.*
, SUM(DATA1.TOTAL)
, SUM(DATA1.FEMMES)
, DATA2.HOMMES + DATA2.FEMMES
, DATA2.FEMMES
, SUM(DATA2.TOTAL)
, SUM(DATA2.FEMMES)

FROM

(SELECT DISTINCT
M.MOIS, M.ANNEE, S.STRUCTURE, F.AFFICHAGE CSP, F.ORD
FROM FOR_ALL_MONTHS M, STRUCTURE S, CSP C, FOR_DISPLAY F
WHERE S.STRUCTURE NOT IN ('AMT')
AND C.CSP = F.INTITULE
AND F.DOCUMENT = 'FOR_8311_Depart'
AND F.ELEMENT = 'Tableau1') XX
,

(select to_char(A.date_,'MM') mois, to_char(A.date_,'YYYY') annee, A.structure, A.csp,
A.hommes, A.femmes,(A.hommes + A.femmes) total
from DEPART A) DATA1

,
(select to_char(B.date_,'MM') mois, to_char(B.date_,'YYYY') annee, B.structure, B.csp,
B.hommes, B.femmes, (B.hommes + B.femmes) total
from DEPART B) DATA2

GROUP BY XX.ANNEE

WHERE XX.MOIS = DATA1.MOIS (+)
AND XX.MOIS = DATA2.MOIS (+)
AND XX.ANNEE-1 = DATA1.ANNEE (+)
AND XX.ANNEE = DATA2.ANNEE (+)
AND XX.STRUCTURE = DATA1.STRUCTURE (+)
AND XX.STRUCTURE = DATA2.STRUCTURE (+)
AND XX.CSP = DATA1.CSP (+)
AND XX.CSP = DATA2.CSP (+);



En fait, ce qui cloche c'est tjr la dernière ligne, visiblement, elle se termine pas comme il le frauderai, j'ai déjà commencer par déplacer la GROUP BY vers le haut, j'ai essayer les virgules, et les points virgules, et mnt j'attends, que quelqu'un m'ouvre les yeux sur mes conneries,

Merci infiniment pour votre aide
A voir également:

2 réponses

ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
15 oct. 2007 à 09:29
Bonjour,

Essaye ceci :

....

WHERE XX.MOIS = DATA1.MOIS (+)
AND XX.MOIS = DATA2.MOIS (+)
AND XX.ANNEE-1 = DATA1.ANNEE (+)
AND XX.ANNEE = DATA2.ANNEE (+)
AND XX.STRUCTURE = DATA1.STRUCTURE (+)
AND XX.STRUCTURE = DATA2.STRUCTURE (+)
AND XX.CSP = DATA1.CSP (+)
AND XX.CSP = DATA2.CSP (+)

GROUP BY XX.ANNEE; 
0
les clauses where doivent etre toujours avant les clauses group by ( PS : Erreur de 1er année info)
Pas de blanc entre xx, et(select tout comme data et ,
0