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

Oracle Discussion :

afficher les champs nuls


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 55
    Points : 30
    Points
    30
    Par défaut afficher les champs nuls
    Bonjour j'ai une requete qui ne m'affiche pas le résultats du champs nul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT D.lcat_ens,F.letat,COUNT(DISTINCT H1.ienseignant) 
    FROM histo_etats_enseignants H1
    Inner join enseigne C on C.ienseignant = H1.ienseignant 
    Inner join enseignant E on E.ienseignant = H1.ienseignant
    right outer join cat_ens D on D.icat_ens = c.icat_ens /*(c'est cette jointure qui n'est pa prise en compte)*/
    right outer join etat F on h1.ietat = F.ietat 
    AND 	E.idep = '33'
    AND	H1.date_effet_ens IN (
    SELECT 	MAX(H2.date_effet_ens) FROM histo_etats_enseignants H2
    WHERE	H1.ienseignant = H2.ienseignant
    AND 	H2.date_effet_ens <= '10/10/2009')
    AND 	(C.date_deliv_ens <= '10/10/2009' OR C.date_deliv_ens IS NULL)
    GROUP BY F.ietat,F.letat,D.lcat_ens
    voila l'affichage du résultat de la requete

    categorie|etat|nombre

    "A ";"Inactif";20
    "B ";"Inactif";211
    "C";"Inactif";24
    "D";"Inactif";62
    "A";"Valide";107
    "B";"Valide";306
    "C";"Valide";61
    "D";"Valide";179
    "";"Suspension";0 /*elle n'affiche pas les catégorie A,B,C,D quand c'est nul*/
    "A";"Annuler";108
    "B";"Annuler";106
    "C";"Annuler";91
    "D";"VAnnuler";19
    et moi je veux qu'elle affiche

    "A ";"Suspension";0
    "B ";"Suspension";0
    "C";"Suspension";0
    "D";"Suspension";0
    quand le nombre est 0 elle n'affiche pas les catégorie de cet etat
    Si quelqu'un peut m'aider

    Merci d'avance

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    C'est pas plutôt un LEFT qu'il faut faire ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 55
    Points : 30
    Points
    30
    Par défaut
    Non que ça soit un left un RIGHT ou juste un join ça me donne le meme résultat

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RIGHT OUTER JOIN cat_ens D ON D.icat_ens = c.icat_ens /*(c'est cette jointure qui n'est pa prise en compte)*/
    LEFT OUTER JOIN etat F ON h1.ietat = F.ietat
    Ou


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RIGHT OUTER JOIN etat F ON h1.ietat = F.ietat
    RIGHT OUTER JOIN cat_ens D ON D.icat_ens = c.icat_ens /*(c'est cette jointure qui n'est pa prise en compte)*/

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Sinon, tu dois aussi pouvoir sortir le MAX pour éviter la sous-requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT D.lcat_ens,F.letat,COUNT(DISTINCT H1.ienseignant) ,MAX(H1.date_effet_ens)
    FROM histo_etats_enseignants H1
    INNER JOIN enseigne C ON C.ienseignant = H1.ienseignant 
    INNER JOIN enseignant E ON E.ienseignant = H1.ienseignant
    RIGHT OUTER JOIN cat_ens D ON D.icat_ens = c.icat_ens /*(c'est cette jointure qui n'est pa prise en compte)*/
    RIGHT OUTER JOIN etat F ON h1.ietat = F.ietat 
    AND 	E.idep = '33'
    AND 	H1.date_effet_ens <= '10/10/2009')
    AND 	(C.date_deliv_ens <= '10/10/2009' OR C.date_deliv_ens IS NULL)
    GROUP BY F.ietat,F.letat,D.lcat_ens

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 55
    Points : 30
    Points
    30
    Par défaut
    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
    18
    19
    20
    21
    22
    SELECT D.lcat_ens,F.letat,COUNT(DISTINCT H1.ienseignant) 
    FROM histo_etats_enseignants H1
     
    INNER JOIN enseigne C ON C.ienseignant = H1.ienseignant 
     
    INNER JOIN enseignant E ON E.ienseignant = H1.ienseignant
     
    RIGHT OUTER JOIN cat_ens D ON D.icat_ens = c.icat_ens /*(c'est cette 
    jointure qui n'est pa prise en compte)*/
     
    RIGHT OUTER JOIN etat F ON h1.ietat = F.ietat 
    AND 	E.idep = '33'
     
    AND	H1.date_effet_ens IN (
    SELECT 	MAX(H2.date_effet_ens) FROM histo_etats_enseignants H2
    WHERE	H1.ienseignant = H2.ienseignant
    AND 	H2.date_effet_ens <= '10/10/2009'
     
    )
     
    AND 	(C.date_deliv_ens <= '10/10/2009' OR C.date_deliv_ens IS NULL)
    GROUP BY F.ietat,F.letat,D.lcat_ens
    sa n'a rien à voir avec la sous requete,la sous requete m envoie juste une date, elle est correcte.c'est la jointure sur la table cat_ens, je veux afficher tout les etats(table etat) pour tout les catégories(table cat_ens) et je suis obligé pour faire une jointure sur la table cat_ens parceque c'est la ou j'ai les libelles des catégorie et que je dois afficher

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par souf_87 Voir le message
    sa n'a rien à voir avec la sous requete,la sous requete m envoie juste une date, elle est correcte.
    Oui je sais bien mais il est pas interdit d'améliorer la requête par ailleurs


  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 55
    Points : 30
    Points
    30
    Par défaut
    ça renvoi pas les memes résultats qd je fais un max de date dans le select,et je veux pas afficher la date mon probleme c'est la jointure.

    comment prendre en compte de tout les catégories et tout les états meme si leurs nombre est nul ?

Discussions similaires

  1. Afficher les champs nuls
    Par Flo88 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 13/03/2008, 18h03
  2. Réponses: 5
    Dernier message: 23/04/2007, 14h37
  3. Re-afficher les champs que l'utilisateur à saisi
    Par Dsphinx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 20/11/2006, 08h27
  4. Réponses: 5
    Dernier message: 25/10/2005, 17h05
  5. afficher les champs null de deux tables dans un select
    Par poil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/09/2005, 16h05

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