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

requête renvoie résultat NULL


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut requête renvoie résultat NULL
    Bonjour,

    Voici une requête ou j'attends le résultat de la somme des quantités vendues et consommées pour un produit donné durant une période déterminée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select cons.nb + ventes.nb 
      from (select sum(qtte_prod_conso) as nb 
              from conso_tb 
             where cde_prod_conso = 799 
               and (date_conso between '2006-01-01' and '2007-02-28')) 
      as cons, (select sum(qqte_vente) as nb 
                  from ventes_tb 
                 where cde_prod_vente = 799 
                   and (date_vente between '2006-01-01' and '2007-02-28')) as ventes
    Cependant, le résultat qui m'est retourné est NULL. Je n'en comprends pas la cause. Quelqu'un pourrait-il m'aider?

    Merci d'avance.

    Christophe

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    La structure de ta requête est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ...
    FROM (ssreq1, ssreq2)
    Ce qui revient à écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ...
    FROM (ssreq1 CROSS JOIN ssreq2)
    Si l'une ou l'autre de tes sous-requête ne ramène aucun résultat, le produit cartésien des deux sera vide, ce qui te renvoie du NULL.

    Tu peux utiliser une union : (mais comme je ne sais pas trop ce que tu veux, je ne sais pas si ça correspond)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ...
    FROM (ssreq1 UNION ssreq2)
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Points : 162
    Points
    162
    Par défaut
    Ou rester sur ta requête et utiliser IFNULL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT IFNULL(t_conso,0)+ IFNULL(t_vente,0)
    FROM (
     
    SELECT Sum( Qte ) AS t_conso
    FROM conso
    WHERE CodeProduit = '101'
    ) AS Temp1, (
     
    SELECT Sum( Qte ) AS t_vente
    FROM vente
    WHERE CodeProduit = '101'
    ) AS Temp2
    Et plus de souci !

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Merci à tous les deux pour votre réponse. De fait, mon problème est maintenant résolu car je faisais un produit cartésien et, si comme un de mes résultat valait 0, ça me retournait NULL.

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

Discussions similaires

  1. [MySQL] Tester si une requête renvoie ou non des résultats
    Par Hervex dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/01/2008, 15h46
  2. Réponses: 2
    Dernier message: 25/11/2007, 16h37
  3. [MySQL] Savoir si une requête renvoie des résultats
    Par Sytchev3 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/10/2007, 14h53
  4. Réponses: 5
    Dernier message: 23/04/2007, 16h59
  5. Tester si une requête renvoie un résultat
    Par dl_jarod dans le forum ASP
    Réponses: 4
    Dernier message: 13/10/2005, 15h48

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