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 résultats nuls d'une requête somme


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 21
    Points : 22
    Points
    22
    Par défaut Afficher les résultats nuls d'une requête somme
    Bonjour,

    J'ai une table avec les champs suivants :
    Periode (1 à 12)
    Produit (A à B)
    Prix
    J'ai la simple requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Matable.periode, Sum(matable.prix)
    FROM Matable
    WHERE matable.monproduit = "B"
    Si je n'ai vendu aucun produit B durant la période 5 par exemple je n'aurai pas de ligne "5" dans le résultat de ma requête ce que je souhaiterais avoir (une ligne avec 5 - B - 0). Quel code SQL dois-je insérer pour être sûr d'obtenir une ligne pour chacune de mes 12 périodes même si je n'ai rien vendu durant des périodes données ?

    Merci,

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Vois du côté de la fonction Nz () ...


  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    J'ai déjà essayé sans résultat sauf erreur de ma part NZ me renvoie 0 lorsque j'ai une erreur et non quelque chose d'autre lorsque j'ai 0.

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Re,

    Alors avec REPLACE ...

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut Chtulus et bienvenu vorjan,

    il te manque les périodes soit tu les as dans une autre table soit il te faudra les créer pour faire une jointure gauche de cette table [periode] à [matable]

    sinon un truc comme ca (pour ne pas avoir à créer de table (ou requete) et si tu n'as pas beaucoup de période):
    Code SQL : 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
    23
    SELECT top 1 1 as periode, nz(DSum("prix","matable","periode=1 and monproduit = 'B'"),0) as montant from matable
    UNION
    SELECT top 1 2 as periode, nz(DSum("prix","matable","periode=2 and monproduit = 'B'"),0) as montant  from matable
    UNION
    SELECT top 1 3 as periode, nz(DSum("prix","matable","periode=3 and monproduit = 'B'"),0) as montant  from matable
    UNION
    SELECT  top 1 4 as periode, nz(DSum("prix","matable","periode=4 and monproduit = 'B'"),0)  as montant from matable
    UNION
    SELECT  top 1 5 as periode, nz(DSum("prix","matable","periode=5 and monproduit = 'B'"),0)  as montant from matable
    UNION
    SELECT  top 1 6 as periode, nz(DSum("prix","matable","periode=6 and monproduit = 'B'"),0)  as montant from matable
    UNION
    SELECT  top 1 7 as periode, nz(DSum("prix","matable","periode=7 and monproduit = 'B'"),0)  as montant from matable
    UNION
    SELECT  top 1 8  as periode, nz(DSum("prix","matable","periode=8 and monproduit = 'B'"),0)  as montant from matable
    UNION
    SELECT  top 1 9 as periode, nz(DSum("prix","matable","periode=9 and monproduit = 'B'"),0)  as montant from matable
    UNION
    SELECT  top 1 10  as periode, nz(DSum("prix","matable","periode=10 and monproduit = 'B'"),0)  as montant from matable
    UNION
    SELECT  top 1 11 as periode, nz(DSum("prix","matable","periode=11 and monproduit = 'B'"),0)  as montant from matable
    UNION
    SELECT  top 1 12 as periode, nz(DSum("prix","matable","periode=12 and monproduit = 'B'"),0)  as montant from matable

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/04/2014, 19h39
  2. Réponses: 1
    Dernier message: 26/07/2009, 01h21
  3. Afficher les mois vides dans une requête
    Par Nessie37 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 04/12/2007, 14h35
  4. Afficher les résultats d'une requête ligne après ligne
    Par ThunderBolt_ dans le forum VBA Access
    Réponses: 9
    Dernier message: 02/08/2007, 13h28
  5. [SQL] Afficher les résultats d'une requête sur plusieurs pages
    Par mealtone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/09/2006, 13h20

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