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 Oracle Discussion :

Afficher count() = 0


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut Afficher count() = 0
    Bonjour,
    Je travaille avec isqlplus et je souhaiterai afficher les lignes qui retournent 0 quand je fais un count.
    Avez-vous une solution ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT a.ref_comp.comp, COUNT(*) FROM Avion a
    GROUP BY a.ref_comp.comp;
    => Affiche les lignes /= 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.ref_comp.comp, COUNT(*) FROM Avion a
    GROUP BY a.ref_comp.comp;
    UNION
    SELECT a.ref_comp.comp, 0 FROM Avion a
    GROUP BY a.ref_comp.comp;
    => Affiche les lignes /=0 puis
    SP2-0850: Command "UNION" is not available in iSQL*Plus
    Puis les lignes précédentes avec les valeurs 0 au lieu de leur valeur réelle

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    il faut mettre le GROUP BY que dans la 2eme requête il me semble

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut
    Avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT a.ref_comp.comp, COUNT(*) FROM Avion a;
    UNION
    SELECT a.ref_comp.comp, 0 FROM Avion a
    GROUP BY a.ref_comp.comp;
    Ca me mets:
    SELECT a.ref_comp.comp, COUNT(*) FROM Avion a
    *

    ERROR at line 1:
    ORA-00937: not a single-group group function
    SP2-0850: Command "UNION" is not available in iSQL*Plus

    Et ça m'affiche les lignes qui sont normalement /= 0 avec des 0 ...

  4. #4
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Citation Envoyé par Tipha Voir le message
    Bonjour,
    Je travaille avec isqlplus et je souhaiterai afficher les lignes qui retournent 0 quand je fais un count.
    Avez-vous une solution ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT a.ref_comp.comp, COUNT(*) FROM Avion a
    GROUP BY a.ref_comp.comp;
    => Affiche les lignes /= 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.ref_comp.comp, COUNT(*) FROM Avion a
    GROUP BY a.ref_comp.comp;
    UNION
    SELECT a.ref_comp.comp, 0 FROM Avion a
    GROUP BY a.ref_comp.comp;
    => Affiche les lignes /=0 puis

    Puis les lignes précédentes avec les valeurs 0 au lieu de leur valeur réelle


    il y a ici ";" de trop

    GROUP BY a.ref_comp.comp;
    UNION
    SELECT a.ref_comp.comp, 0 FROM Avion a
    GROUP BY a.ref_comp.comp;[/CODE]

    sinon

    si tu fais

    SELECT COUNT(*) FROM Avion a
    where a.ref_comp.comp
    is null ;

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut
    Malheurseusement avec la correction et ce que tu proposes, cela ne marche pas. Par contre, j'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT a.ref_comp.comp, COUNT(*) FROM Avion a
    GROUP BY a.ref_comp.comp;
    UNION
    SELECT a.ref_comp.comp FROM Avion a
    WHERE (SELECT COUNT(*) FROM Avion a
    GROUP BY a.ref_comp.comp) = 0;
    Et ça me renvoit:
    WHERE (SELECT COUNT(*) FROM Avion a
    *

    ERROR at line 2:
    ORA-01427: single-row subquery returns more than one row

    En effet, je dois avoir 2 lignes qui retourne 0. Est-ce que la solution se rapproche ?

  6. #6
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    et ca


    SELECT COUNT(*) DECODE(a.ref_comp.comp,null,'Null',a.ref_comp.comp) REF FROM Avion a
    group by a.ref_comp.comp
    order by 1 desc ;

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut
    Alors, non plus ..
    J'ai ça:
    SELECT COUNT(*) DECODE(a.ref_comp.comp,null,'Null',a.ref_comp.comp) REF FROM Avion a

    ERROR at line 1:
    ORA-00923: FROM keyword not found where expected

    L'étoile de l'erreur se trouve sous la parenthèse : DECODE(

    Je suis désolée, en plus, là, je ne comprends pas tout ..

  8. #8
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    il y a une virgule oubliée

    SELECT COUNT(*) ,DECODE(a.ref_comp.comp,null,'Null',a.ref_comp.comp) REF FROM Avion a
    group by a.ref_comp.comp
    order by 1 desc ;

Discussions similaires

  1. afficher le résultat d'un count
    Par jan0 dans le forum SQL
    Réponses: 3
    Dernier message: 20/10/2006, 10h01
  2. COUNT() elle compte mais n affiche pas
    Par tyberium dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/09/2006, 23h09
  3. Afficher le résultat d'un COUNT même null
    Par Invité dans le forum Langage SQL
    Réponses: 10
    Dernier message: 18/11/2005, 18h07
  4. [MySQL] Requete count et l'afficher
    Par tyarak dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/11/2005, 21h57
  5. Afficher les enregistrements si le count() vaut 0
    Par j14z dans le forum Requêtes
    Réponses: 7
    Dernier message: 06/04/2004, 09h51

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