Bonjour,
Sous SQL 2000, j'essaie de faire une requête pour obtenir la liste par clients, par article, du dernier prix de vente sur certains documents. (cbmarq étant un incrément de la base)
exemple de ce que je veux obtenir :
J'ai réussi à faire ceci en mélangeant le résultat de mes recherches "webistiques" :Clients-article-prix-cbmarq
dupont-table-10,2- 300
dupont-rouet-11,0-456
dupont-radio-8,72 -233
JEANO-lampe-32,0- 7230
JEANO- rouet- 12,3- 345
JEANO -radio- 7,5- 7680
( j'ai mis des champs en plus pour me faciliter le contrôle du bon résultat escompté)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT m.CT_Num, m.AR_Ref, m.cbMarq, m.DL_PrixUnitaire, m.DL_Qte, m.DL_MontantHT, m.DO_Date, m.DO_Domaine, m.DO_Type, m.DO_Piece FROM F_DOCLIGNE AS m INNER JOIN (SELECT CT_Num, AR_Ref, MAX(cbMarq) AS cbMarqMax FROM F_DOCLIGNE GROUP BY CT_Num, AR_Ref, DO_Domaine, DO_Type) AS tmp ON m.AR_Ref = tmp.AR_Ref AND m.cbMarq = tmp.cbMarqMax ORDER BY m.CT_Num, m.AR_Ref
Et bien devinez quoi, je poste parce que je n'arrive pas au bon résultat
Cela me donne des lignes en doublons sur l'article. Exemple:
Dans cet exemple, je ne voudrais avoir que :dupont-table-10,2- 300
dupont-rouet-11,0-456
dupont-rouet-12,72 -2233
dupont-radio-8,72 -233
JEANO-lampe-32,0- 7230
JEANO- rouet- 12,3- 345
JEANO -radio- 7,5- 7680
parce que pour DUPONT le dernier prix de vente de l'article ROUET est bien 12,72 (l'article ROUET pour DUPONT, son plus grand cbMarq est 2233)dupont-table-10,2- 300
dupont-rouet-12,72 -2233
dupont-radio-8,72 -233
JEANO-lampe-32,0- 7230
JEANO- rouet- 12,3- 345
JEANO -radio- 7,5- 7680
En ce jour de dimanche, y aurait-il une bonne âme pour me guider sur les routes de notre seigneur SQL ??
Merci d'avance
Partager