IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sql*Plus Oracle Discussion :

la commande sql ne se termine pas correctement


Sujet :

Sql*Plus Oracle

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    81
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par d�faut la commande sql ne se termine pas correctement
    Bonjour je commence en sql et je ne comprends pas une de mes erreurs. Voici le code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    SQL>  select noArticle, SUM(quantitée) AS quantitéecommandée
      2   from lignecommande
      3  group by noArticle
      4  order by noarticle
      5  having SUM(quantitée) >= 0
      6  ;
    Le message d'erreur est que la ligne 5 ne se termine pas correctement,
    est-ce que quelqu'un pourrait m'aider??

  2. #2
    Membre chevronn�
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    316
    D�tails du profil
    Informations personnelles :
    �ge : 55
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 316
    Par d�faut
    essai
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    select * from 
         (SELECT noArticle, SUM(quantitée) AS quantitéecommandée
      2   FROM lignecommande
      3  GROUP BY noArticle
      4  ORDER BY noarticle)
      5  where quantitéecommandée >= 0 ;

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    68
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 68
    Par d�faut
    Le ORDER BY doit �tre en dernier (donc apr�s le HAVING).

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    68
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 68
    Par d�faut
    Citation Envoy� par xavi Voir le message
    Le ORDER BY doit �tre en dernier (donc apr�s le HAVING).
    De plus le GROUP BY fait un ORDER BY implicite.

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par d�faut
    Citation Envoy� par c.langlet Voir le message
    essai
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    select * from 
         (SELECT noArticle, SUM(quantitée) AS quantitéecommandée
      2   FROM lignecommande
      3  GROUP BY noArticle
      4  ORDER BY noarticle)
      5  where quantitéecommandée >= 0 ;
    Quel est l'int�r�t ?

    Essaie plut�t :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    SQL>  SELECT noArticle, SUM(quantitée) AS quantitéecommandée
      2   FROM lignecommande
      3  GROUP BY noArticle
      4  HAVING SUM(quantitée) >= 0
      5  ORDER BY noarticle;
    L'order by doit etre mis en dernier

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    3 437
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 437
    Par d�faut
    Citation Envoy� par xavi Voir le message
    De plus le GROUP BY fait un ORDER BY implicite.
    C'est faux.

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    68
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 68
    Par d�faut
    Citation Envoy� par pifor Voir le message
    Effectivement : c'est faux.
    Il s'agit d'une mauvaise habitude prise avec le mode RULE de la version 7.3.
    Les �volutions de l'optimiseur � partir de la version 9 n'autorisent plus ce genre de tour de passe passe.
    shame on me (je travaille encore sur de la 7.3 )

  8. #8
    Membre chevronn�
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    316
    D�tails du profil
    Informations personnelles :
    �ge : 55
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 316
    Par d�faut
    Citation Envoy� par plaineR Voir le message
    Quel est l'int�r�t ?

    Essaie plut�t :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    SQL>  SELECT noArticle, SUM(quantitée) AS quantitéecommandée
      2   FROM lignecommande
      3  GROUP BY noArticle
      4  HAVING SUM(quantitée) >= 0
      5  ORDER BY noarticle;
    L'order by doit etre mis en dernier
    Mea maxima culpa, aucun interet

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    81
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par d�faut une partie du probl�me r�gl�...
    Alors rebonjour. Merci, j'ai appris qu'il fallait mettre ORDER BY � la fin du code et ca fonctionne. Mais on dirait que ca ne r�gle pas mon probl�me. En fait dans ma liste je ne r�ussi pas � afficher les valeurs nulles.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SQL> select noarticle, sum(quantitéé) as quantitéecommandée
      2  from lignecommande
      3  group by noarticle
      4  having sum(quantitéé) >= 0
      5  order by noarticle;
     
     NOARTICLE QUANTIT?ECOMMAND?E
    ---------- ------------------
            10                 20
            20                  9
            40                  4
            50                  2
            70                  8
            90                  1
            95                  3
     
    7 ligne(s) selectionnee(s).
    Dans ce cas, certains articles ont des valeurs nulles et je ne r�ussi pas � les afficher... J'aurais cru qu'en mettant HAVING SUM() >=0, ca aurait fonctionn�...

    Merci!

  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    68
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 68
    Par d�faut
    null n'est pas �gal � 0.
    Les op�rateurs de comparaison num�riques (=, >= , etc ) �cartent les valeurs nulles.

    En supposant que tu souhaites que null soit �gal � 0 (ce qui n'est pas �vident en soit et d�pend de ton mod�le m�tier), tu peux utiliser la fonction nvl :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
     SELECT noarticle, sum(nvl(quantitéé,0)) AS quantitéecommandée
      2  FROM lignecommande
      3  GROUP BY noarticle
      4  HAVING sum(nvl(quantitéé,0)) >= 0
      5  ORDER BY noarticle;

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    81
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par d�faut
    D'accord alors je me trompe, je voulais dire certaine valeur sont �gale � 0 et le code pr�c�dent ne les affiche pas avec le HAVING >= 0...

    Merci

  12. #12
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    81
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par d�faut
    Merci mon probl�me est r�solu, je devais utiliser un natural left join. Je n'ai pas su exposer mon probl�me comme il se devait mais je vous remercie beaucoup tout de m�me!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. la commande sql ne se termine pas correctement
    Par jean sami dans le forum Bases de donn�es
    R�ponses: 12
    Dernier message: 18/09/2008, 14h03
  2. la commande SQL ne se termine pas correctement
    Par FullOver dans le forum Struts 1
    R�ponses: 15
    Dernier message: 21/05/2008, 19h26
  3. la commande sql ne se termine pas correctement
    Par watiero dans le forum SQL
    R�ponses: 5
    Dernier message: 01/10/2007, 10h19
  4. R�ponses: 5
    Dernier message: 21/08/2007, 13h47
  5. ORA-00933 la commande SQL ne se termine pas correctement
    Par habasque dans le forum Sql*Plus
    R�ponses: 1
    Dernier message: 09/12/2006, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo