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 :

Résultat d'une différence


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2006
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2006
    Messages : 533
    Par défaut Résultat d'une différence
    Bonjour a tous,

    j'ai regardé une multitude de discussions et je ne trouve toujours pas ma solution :
    Mon souhait :je voudrais avoir la différence entre la première SUM et la seconde : Mes champs sont numériques, je n'ai pas de message d'erreur mais je n'ai pas non plus de résultat. Mes champs sont bien alimentés avec des chiffres. Voici ci-dessous le code de la requête. Merci à tous de votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT SUM(Resultats_Commerciaux.Vente_Carte) - SUM(Resultats_Commerciaux.`12_25_Budgetisee`)
     , Resultats_Commerciaux.id
    FROM Resultats_Commerciaux
    WHERE Resultats_Commerciaux.Mois_de_Vente='Mai'
     AND Resultats_Commerciaux.Type_Carte='12_25'

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Bonjour,

    à première vue je ne comprends pas que vous n'ayez pas de message d'erreur en l'absence de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Group By Resultats_Commerciaux.id
    ensuite l'expression "Resultats_Commerciaux.`12_25_Budgetisee`" peut très bien devenir "Resultats_Commerciaux.12_25_Budgetisee".
    Il n'y a pas d'espace ni d'accent, aucun intéret de mettre des quotes donc, à part risquer une erreur, par exemple ci dessus les simples quotes sont ` au lieu de ', ce qui posera problème dans la plupart des SGBD ...

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2006
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2006
    Messages : 533
    Par défaut
    bonjour

    j'ai rajoute groupe by mais je n'ai toujours pas de message erreur ni resultat, je n'y comprends plus rien

    a +

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Avez-vous des valeurs nulles dans l'une de vos colonnes ?
    Si oui il faut faire quelque chose de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM(COALESCE(Resultats_Commerciaux.Vente_Carte,0)) - SUM(COALESCE(Resultats_Commerciaux.12_25_Budgetisee,0))
    Ainsi on remplace les valeurs nulles par 0, ce qui permet de faire des calculs.
    Autrement 0 + Null = Null

    COALESCE fonctionne sous DB2.
    Sous SQL Server on utilise la fonction ISNULL plutôt que COALESCE il me semble, sous les autres SGBD je ne sais pas.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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 454
    Par défaut
    Citation Envoyé par asmduty Voir le message
    Autrement 0 + Null = Null
    Ce que vous dites est vrai, mais n'est pas lié avec la solution que vous préconisez.
    Les opérateurs d'agrégats "ignorent" les nulls :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select avg(col) as avg
         , sum(col) as sum
         , min(col) as min
         , max(col) as max
      from (select null as col from dual union all
            select 2           from dual) sr;
     
    AVG SUM MIN MAX
    --- --- --- ---
      2   2   2   2

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Peut être que je restitue mal le contexte, mais j'ai eu ce problème en DB2, et un COALESCE l'avait résolu.
    Peut-être aussi que c'est le cas seulement avec DB2 ...

  7. #7
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Est ce que cette requête sort un résultat ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Resultats_Commerciaux.Vente_Carte,   
        Resultats_Commerciaux.`12_25_Budgetisee`,
        Resultats_Commerciaux.id
    FROM Resultats_Commerciaux
    WHERE Resultats_Commerciaux.Mois_de_Vente='Mai' 
         AND Resultats_Commerciaux.Type_Carte='12_25'

  8. #8
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2006
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2006
    Messages : 533
    Par défaut
    hello

    la requete m'affiche uniquement le chiffre 1

  9. #9
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2006
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2006
    Messages : 533
    Par défaut
    je n ai pas de valeur NULL dans mes colonnes elles sont remplacées par 0 (ZERO)

  10. #10
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Citation Envoyé par bibi28 Voir le message
    hello

    la requete m'affiche uniquement le chiffre 1
    1 dans les 3 colonnes ??????


    je n ai pas de valeur NULL dans mes colonnes elles sont remplacées par 0 (ZERO)
    Je croyais que la requête ne sortait aucun résultat ????

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/06/2015, 08h10
  2. Différence de résultats d'une requête entre OpenQuery et ADO
    Par hellbilly dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/04/2006, 18h29
  3. Résultat d'une requète SQL
    Par camino dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/02/2004, 15h22
  4. [JSP] Recopier le résultat d'une JSP dans un fichier
    Par xxaragornxx dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 29/09/2003, 15h10
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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