Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2011, 14h34   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 40
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Dom-Tom

Informations forums :
Inscription : janvier 2010
Messages : 40
Points : 10
Points : 10
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 :
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
phcm971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 15h03   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Pour ne pas avoir de doublons, il faut utiliser le mot clef DISTINCT (et au passage un peu de normalisation sur la jointure) :
Code :
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 :
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
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 16h04   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 40
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Dom-Tom

Informations forums :
Inscription : janvier 2010
Messages : 40
Points : 10
Points : 10
Waldar, celle des agrégats me convient très bien

Merci
phcm971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h17.


 
 
 
 
Partenaires

Hébergement Web