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 :

Soustraction avec des champs Null


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 261
    Points : 69
    Points
    69
    Par défaut Soustraction avec des champs Null
    Bonjour à tous,

    J'ai une requête ou je liste des quantités vendus et des quantités en retour.

    Ce qui me donne comme résultat deux champs :

    Quantité ; Retour
    2;2
    10;Null
    5; Null
    3;1

    Les valeurs à Null sont celles ou il n'y a pas eu de retour et je sous d'accord avec les résultats de cette requête.

    En revanche je souhaiterai faire dans ma requete une sorte de (quantite-retour) AS resultat
    Le problème c'est que pour les quantités à Null le resultat est Null.
    En revanche pour les autres (retour différent de Null) c'est bon.

    Comment puis-je contourner ce problème ?
    Je peux tester si retour est à null ou pas ?

    Merci d'avance de votre aide.

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Utilisez COALESCE dans votre requete

    Bon courage

  3. #3
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    sinon

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    select case 
               when quantite is null 
               then 0 
               else quantite 
             end 
             - case 
                  when retour is null 
                  then 0 
                  else retour 
               end 
    from taRequete

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Donnez-moi un intérêt de cette syntaxe par rapport à coalesce, qui est normalisé, plus court, inclu dans la plupart des SGBD et qui est conçu spécialement à cet effet.

  5. #5
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    pour des sgbd qui n'ont pas le coalesce, et qui ont le case peut etre ?

    => cas de Interbase...

    et je n'ai jamais dit que ma solution était meilleur. S'en est juste une autre.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 849
    Points : 52 982
    Points
    52 982
    Billets dans le blog
    6
    Par défaut
    CASE et COALESCE font partie de la norme SQL...

    A +

  7. #7
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    La vraie solution n'est pas le CASE.
    La vraie solution est de jeter Interbase !

    (Zut, je suis vraiment rancunier. Désolé.)

  8. #8
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par pacmann Voir le message
    La vraie solution n'est pas le CASE.
    La vraie solution est de jeter Interbase !

    (Zut, je suis vraiment rancunier. Désolé.)
    j'aimerai bien

    et pour SQLPro, peut etre que les deux sont dans la norme...mais tous les sgbd n'implémente pas la norme correctement !
    Bref on ne va pas s'étendre sur un tel détail

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 261
    Points : 69
    Points
    69
    Par défaut
    Merci à tous, j'ai résolu mon problème.

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

Discussions similaires

  1. [Mapping] Récupérer un objet avec des champs setté à null
    Par grodeg dans le forum Hibernate
    Réponses: 1
    Dernier message: 11/07/2012, 14h10
  2. [AC-2007] problème avec des champs null
    Par rominous41 dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 23/05/2011, 15h03
  3. pb de requete avec des champs null
    Par karenv5 dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/05/2010, 10h26
  4. Requete avec des champs null
    Par passie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/06/2006, 15h11
  5. [word] Generer un document avec des champs
    Par webbulls dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/04/2004, 10h47

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