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

Requêtes et SQL. Discussion :

Afficher les mois vides dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut Afficher les mois vides dans une requête
    Bonjour,

    Random m'a aidée pour la requête suivante qui fonctionne à merveille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Format([Date],"mmmm") AS MOIS, Count(DETAIL.Numdetail) AS Nombre, Count(DETAIL.Numdetail)/(select count(DETAIL.Numdetail) as CompteDeNumdetail FROM DETAIL) AS [%]
    FROM DETAIL
    GROUP BY Format([Date],"mmmm"), Month([Date])
    ORDER BY IIf(Month([Date])<=7,Month([Date])+12,Month([Date]));
    Petit souci, je souhaiterai afficher tous les mois (à savoir ceux à venir même s'ils ne comportent aucun enregistrement). Là pour le moment, il n'y a que 2 mois qui ont été renseignés.

    Est-ce possible ?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ton énoncé pose un problème physique et philosophique majeur sur la nature du temps

    tous les mois à venir ?

    mais combien il y at'il de mois à venir ?

    et quand le dernier mois sera venu qui saura que c'était le dernier ?

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Nessie37 Voir le message
    Petit souci, je souhaiterai afficher tous les mois .... Là pour le moment, il n'y a que 2 mois qui ont été renseignés.

    Est-ce possible ?
    C'est bien possible et c'est d'ailleur résolu ici http://www.developpez.net/forums/sho...=441271&page=3

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par random Voir le message
    ton énoncé pose un problème physique et philosophique majeur sur la nature du temps

    tous les mois à venir ?

    mais combien il y at'il de mois à venir ?

    et quand le dernier mois sera venu qui saura que c'était le dernier ?
    MDR !!!

    effectivement, vu comme ça !
    Je me comprenais quand je disais ceux à venir mais ce n'était pas forcément explicite si on ne jettait pas un oeil sur la requête

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par DMboup Voir le message
    C'est bien possible et c'est d'ailleur résolu ici http://www.developpez.net/forums/sho...=441271&page=3
    Bonjour MBOUP

    Le souci avec mon post c'est que je me suis embarquée dans des explications qui m'ont un peu perdue, raison pour laquelle il a été fermé.
    Là dessus j'ai pu régler mon problème de base en repartant sur la réponse que Micniv m'avait donnée au tout début.

    J'ai donc bien les deux mois (oct et nov) dans l'odre et avec leur nom

    Si tu es ok pour m'aider à reprendre ton raisonnement à partir de cette requête qui fonctionne à merveille alors allons-y ! Je suis partante

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Je crois que tu as tout les élèments pour finaliser sans trop de problème.
    Dans le post que j'ai indiqué, il ya
    - une image pour la table des Mois que tu dois créer
    - une image pour la requête supplémentaire à faire

    Reste juste que
    Citation Envoyé par Nessie37 Voir le message
    J'ai donc bien les deux mois (oct et nov) dans l'odre et avec leur nom
    la relation ne sera plus faite avec le N° de mois mais le libelle.
    Après ca doit marcher tout seul.

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    je sais bien !
    mais je suis partie sur une nouvelle requête que j'ai crains de chambouler en rajoutant je ne sais quel Nummois ou Format...
    Bref.

    Merci pour l'aide

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Ta requête qui marche, enregistre la et donne le nom que tu veux.
    Supposons qu'elle se nomme Req2 et que ta table Mois soit renseigné de Janvier à Decembre,

    voici une requête qui te donne ce que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT Mois.LibelleMois, Req2.Nombre, Req.[%]
    FROM Mois LEFT JOIN Req2 ON Mois.LibelleMois = Req.MOIS;
    Voila.

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    j'aimerais te montrer des miniatures mais apparemment, je ne peux pas (Echec). Bref.
    alors voici le code de ma requête qui marche, dont j'ai créé une copie (R1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Format([Date],"mmmm") AS MOIS, Count(DETAIL.Numdetail) AS Nombre, Count(DETAIL.Numdetail)/(select count(DETAIL.Numdetail) as CompteDeNumdetail FROM DETAIL) AS [%]
    FROM DETAIL
    GROUP BY Format([Date],"mmmm"), Month([Date])
    ORDER BY IIf(Month([Date])<=7,Month([Date])+12,Month([Date]));
    et voici le code de la nouvelle requête qui contient ma T_MOIS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MOIS.codemois, R1.Nombre, R1.[%]
    FROM MOIS LEFT JOIN R1 ON MOIS.codemois = R1.MOIS;
    J'ai comme résultat un tableau vide et avec des numéros de mois dans le désordre

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Nessie37 Voir le message
    et voici le code de la nouvelle requête qui contient ma T_MOIS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MOIS.codemois, R1.Nombre, R1.[%]
    FROM MOIS LEFT JOIN R1 ON MOIS.codemois = R1.MOIS;
    Si ta table se nomme T_Mois, ta requête a un problème
    Quelle est la structure de ta table des mois?

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    2 champs : codemois et Libellé

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Dans ce cas ta requête sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT T_MOIS.libellé, R1.Nombre, R1.[%]
    FROM T_MOIS LEFT JOIN R1 ON T_MOIS.libellé = R1.MOIS;
    PS : Tu est tellement préssée d'avoir la bonne réponse que tu ne porte même pas attention aux modifications que je te suggéres.

  13. #13
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    J'ai toujours le même tableau avec le nom des mois, dans le désordre et sans valeur en face

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Je crois que tu as juste un problème de correspondance entre ta table T_Mois et ta requête R1
    Est ce que ta table T_Mois n'affiche pas les mois en francais alors que ta requête R1 les affiche en Anglais?

    T_mois R1
    Janvier - > Janurary
    ...

    ????

    Tu dois avoir dans ta table T_Mois les mêmes libellé que dans ta requête R1.

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bonjour,
    ça y est ! j'ai pu enfin avoir mon tableau de 12 mois à partir d'Août jusque juillet avec les données correspondantes pour les mois renseignés.
    CEPENDANT (eh oui sinon ce serait trop simple), je ne comprends pas pourquoi il ne prends pas en compte la données de décembre : Voici la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MOIS.Libellé, R1.Nombre, R1.[%]
    FROM MOIS LEFT JOIN R1 ON MOIS.Libellé=R1.MOIS;
    où R1 est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Format([Date],"mmmm") AS MOIS, Count(DETAIL.Numdetail) AS Nombre, Count(DETAIL.Numdetail)/(select count(DETAIL.Numdetail) as CompteDeNumdetail FROM DETAIL) AS [%]
    FROM DETAIL
    GROUP BY Format([Date],"mmmm"), Month([Date])
    ORDER BY IIf(Month([Date])<=7,Month([Date])+12,Month([Date]));
    R1 m'affiche bien les données de décembre mais Requête 2 elle non. J'ai juste oct et nov

    Comment est-ce possible ?

  16. #16
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    J'ai trouvé pourquoi :

    J'ai une table MOIS où décembre était écrit DECEMBRE, or le Format(Date) de ma requête affiche DECEMBRE avec un accent aigu !

    Problème résolu

    (Fière de moi)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Oracle] Ignorer les champs vides dans une requête sql
    Par roswina dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/05/2015, 09h29
  2. Afficher les lignes vides dans une requete
    Par Mattorre dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/07/2010, 14h13
  3. Réponses: 1
    Dernier message: 26/07/2009, 01h21
  4. Réponses: 3
    Dernier message: 25/09/2008, 10h26
  5. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02

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