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 :

Pourquoi j'ai des doublons avec cette requête ?


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 47
    Points : 25
    Points
    25
    Par défaut Pourquoi j'ai des doublons avec cette requête ?
    Bonjour

    qui peut m aider avec cette requête, car malgré le group by, j ai des doublons, comment régler ça.
    merci à vous
    sNumTicket est une variable qui contient des ID de facture, séparés par des , ex : "123, 675,23,876"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT LF5.REFERENCE, LF5.DESIGNATION,  LF5.IDREF, LF5.QNT AS QTE ,  LF5.TOTTTC AS TTC 
    FROM LF5, VENTE5 
    WHERE  LF5.IDPIECE = VENTE5.IDVENTE5 AND VENTE5.NUMPIECE IN sNumTicket 
    GROUP BY LF5.REFERENCE,LF5.DESIGNATION, LF5.IDREF, QTE , TTC

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Pour ne pas avoir de doublons, il faut utiliser le mot clef DISTINCT (et au passage un peu de normalisation sur la jointure) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT DISTINCT
           LF5.REFERENCE, LF5.DESIGNATION, LF5.IDREF,
           LF5.QNT AS QTE, LF5.TOTTTC AS TTC
      FROM LF5
           INNER JOIN VENTE5
             ON VENTE5.IDVENTE5 = LF5.IDPIECE
     WHERE VENTE5.NUMPIECE IN sNumTicket
    Maintenant, mon petit doigt me dit que vous cherchez à obtenir des agrégats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      SELECT LF5.REFERENCE, LF5.DESIGNATION, LF5.IDREF,
             SUM(LF5.QNT) AS QTE, SUM(LF5.TOTTTC) AS TTC
        FROM LF5
             INNER JOIN VENTE5
               ON VENTE5.IDVENTE5 = LF5.IDPIECE
       WHERE VENTE5.NUMPIECE IN sNumTicket
    GROUP BY LF5.REFERENCE, LF5.DESIGNATION, LF5.IDREF

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 47
    Points : 25
    Points
    25
    Par défaut
    Waldar, celle des agrégats me convient très bien

    Merci

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

Discussions similaires

  1. [AC-2007] Gestion des doublons avec 2 champs indexés
    Par bestall666 dans le forum VBA Access
    Réponses: 4
    Dernier message: 08/06/2010, 18h53
  2. Transmission des objets avec une requête HTTP POST
    Par handsome01 dans le forum Langage
    Réponses: 4
    Dernier message: 31/03/2009, 16h07
  3. rajouter des doublons avec une macro dans une colonne
    Par Banel dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/08/2008, 23h58
  4. qu'est ce qui ne va pas avec cette requête
    Par fk04 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/08/2006, 09h01
  5. Réponses: 13
    Dernier message: 12/01/2006, 10h45

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