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

Langage SQL Discussion :

Pas de retour des valeurs NULL


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Points : 46
    Points
    46
    Par défaut Pas de retour des valeurs NULL
    Bonjour,

    voila je suis en peine dans une de mes requêtes.
    J'ai regardé sur le forum mais j'ai les yeux explosés après 2h de recherches sur le net . . .

    Voila j'ai un select du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select sum(points) as s2 from ajouter,condiments,commande
    		where commande.numerocommande = ajouter.nom_1
    		and ajouter.nom = condiments.nom
    		and ajouter.nom_1 = new.numerocommande
    Je pense que l'utilité de cette requête ne vous est pas utile.
    Mon soucis c'est que j'additionne le résultat à d'autres requêtes et que si elle me renvoit un NULL alors la somme totale de ma grande requête est nulle . . .

    Comment faire pour que cette requête se fasse que si elle renvoit un résultat (non null of course xD)

    Je ne sais pas si je suis assez clair . . . je reste sur le forum pour guéter les reponses.


    Merci @ vous

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 813
    Points
    30 813
    Par défaut
    Si points ne contient que des valeurs nulles, coalesce te permettra de récupérer un 0.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  SUM(COALESCE(points, 0)) AS s2 
    FROM    ajouter
        INNER JOIN
            condiments
            ON  ajouter.nom = condiments.nom
        INNER JOIN
            commande
            ON  commande.numerocommande = ajouter.nom_1
    WHERE   ajouter.nom_1 = new.numerocommande
    ;
    Si tu ne veux aucun retour si points ne contient que des valeurs nulles, il suffit d'un filtre supplémentaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT  SUM(points) AS s2 
    FROM    ajouter
        INNER JOIN
            condiments
            ON  ajouter.nom = condiments.nom
        INNER JOIN
            commande
            ON  commande.numerocommande = ajouter.nom_1
    WHERE   ajouter.nom_1 = new.numerocommande
        AND points  IS NOT NULL
    ;
    Même pour une jointure interne, utilisez l'opérateur JOIN...ON, défini dès 1992 dans la norme ANSI-SQL, qui améliore la lisibilité de la requête en séparant ce qui relève de la jointure de ce qui relève du filtre.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut
    salut,

    sous Oracle tu peux utiliser la fonction NVL qui te remplace Null par une valeur au choix.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select NVL(sum(point),0) from xxx
    te retourn 0 si la somme est null.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sum(NVL(point,0)) from xxx
    s'assure que 0 est pris à la place de point quand il est null...

    P.

Discussions similaires

  1. Pas d'affichage des valeurs nulles avec un COUNT
    Par phoenixz22 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 30/05/2007, 18h39
  2. [SQL] Affichage des valeurs nulles dans un Count
    Par at_first dans le forum Access
    Réponses: 4
    Dernier message: 06/03/2007, 11h07
  3. NOT NULL enregistre des valeurs null
    Par tyberium dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/12/2006, 09h20
  4. [PostgreSQL] retour de valeurs nulles
    Par viny dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/11/2006, 21h26
  5. [debutant][erreur] pas un Objet ou valeur Null
    Par Tempotpo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/04/2006, 16h17

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