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

MS SQL Server Discussion :

Fonction 'SUM'


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 2
    Par défaut [Résolu] Fonction 'SUM'
    Bonjour,

    Je tombe de très haut là

    Ma requete est la suivante :
    Code : 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
    SELECT DISTINCT OCTIMEGT_ORREP.matricule,
    	RTRIM(sqloctime.dbo.pers.pers_nom) + ' ' + LTRIM(sqloctime.dbo.pers.pers_pre) AS Nom,
    	OCTIMEGT_PARAMACT.libelle,
    	sum(OCTIMEGT_ORREP.Tth) as tth
    From OCTIMEGT_ORREP
    INNER JOIN OCTIMEGT_OR ON OCTIMEGT_ORREP.nor = OCTIMEGT_OR.Nor AND OCTIMEGT_ORREP.code_ste = OCTIMEGT_OR.code_ste
    INNER JOIN sqloctime.dbo.pers ON OCTIMEGT_ORREP.matricule = sqloctime.dbo.pers.pers_mat
    INNER JOIN OCTIMEGT_PARAMACT ON OCTIMEGT_ORREP.activite = OCTIMEGT_PARAMACT.id_act
    INNER JOIN sqloctime.dbo.nivprev ON sqloctime.dbo.nivprev.pers_mat = sqloctime.dbo.pers.pers_mat
     
    WHERE (OCTIMEGT_OR.date_fact not between '02/01/1900' and '01/05/2003') AND
    	OCTIMEGT_ORREP.datj < '01/05/2003' AND
    	sqloctime.dbo.nivprev.niv_cod1 = '1' AND
    	sqloctime.dbo.nivprev.niv_cod2 = '4' AND
    	OCTIMEGT_ORREP.matricule = '735'
    GROUP BY OCTIMEGT_ORREP.matricule,
    	sqloctime.dbo.pers.pers_nom,
    	sqloctime.dbo.pers.pers_pre,
    	OCTIMEGT_PARAMACT.Libelle
    Cette requête ramene un total d'heure, A MA GRANDE SURPRISE, j'ai l'impression que Sql Serveur sais plus faire des additions.

    Ayant fait la meme requete sans la somme (le détail), je ne retrouve pas mes p'tits.

    J'ai une ligne (version détail) qui est seule (valeur 0.68 ) .Une fois regroupé(version somme) cette ligne est tous bonnement multiplié par 2.

    Une fois trouvé l'erreur j'ai commencé à regarder toute mes lignes en détail et refait tous les calculs à la main. (Y'a des erreurs partout).

    J'y comprend plus rien ???

    X-Deus

    P.S: J'ai Sql Serveur 2000.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Bonjour,
    A priori l'instruction distinct ne sert à rien lorsque tu fait une somme.
    mais si la requete de vérification tu as mis le distinct, tu n'a pas du te rendre compte si il y avait des doublons.
    A mon avis tu as un problème dans tes jointures, ce qui fait que tu obtiens des doublons et que tu les sommes.

    Quand à savoir où est le problème, sans la structure des tables, et les relations, je ne peux pas le savoir.
    A+
    Soazig

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 2
    Par défaut
    C'est ce que j'ai aussi pensé, alors j'me suis contenté, j'ai viré le DISTINCT histoire de voir les doublons -> y'en avait pas et le résultat de la somme était toujours identique(meme erreur de calcul).

    J'ai refait la requete en enlevant tous les inner join (la table requeter ne contenant pratiquement que des clés externes d'ou les inner join).

    Je me suis donc retrouver avec une simple requete contenant 2 conditions WHERE. Dans un premier temps j'ai afficher le detail pour faire le calcul à la main.
    J'ai ensuite modifier la requete en somme et bingo il me refaisait la meme erreur de calcul



    Ce qui m'étonne c'est qu'il ne fait pas tout le temps l'erreur.

    X-Deus

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

Discussions similaires

  1. probleme avec la fonction sum (debutant)
    Par mcf1 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/05/2006, 09h33
  2. [MySQL] Afficher le résultat de la fonction SUM()
    Par Flushovsky dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/12/2005, 01h15
  3. Fonction SUM de QReport
    Par sondo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/12/2004, 12h31
  4. pb avec la fonction sum!
    Par ber_jp dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 28/08/2004, 22h22
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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