Bonjour,
Je viens vers vous car je ne trouve de solution à mon problème.

J'ai 4 tables avec une dizaine de champs dans chacune.
Je dois faire une requête qui, grâce à des inner join, me permet de remonter tous les champs des 4 tables dans chaque ligne du résultat de la requête.
Jusque là c'est ok.

Maintenant, il se trouve que dans l'un des champs de l'une des tables, il y a une valeurs qui peut se répéter plusieurs fois. Par exemple, la valeur 'R5412', peut sortir plusieurs fois dans les lignes du résultat de ma requête, et dans la colonne 'ModèleRef' (colonne qui se trouve dans l'une des 4 table uniquement).

Le résultat de la requête Sql me sort 7 lignes en tout.
Mais dans toutes les lignes, la colonne 'ModèleRef' ne présente que 2 valeurs différents.
Je voudrais donc remonter que 2 lignes et non 7.


Ex: j'ai ceci :

Table1.val1 | Table1.val2 | Table2.val1 | Table2.val2 | Table3.val1 | Table4.val1
------------------------------------------------------------------------------
12 VAL1 548 989 54545 45562
13 VAL1 435 459 45655 31645
14 VAL2 824 359 34545 64578
15 VAL2 111 457 58741 13542
16 VAL2 986 478 35412 91642
17 VAL2 412 358 02401 34544
18 VAL2 021 320 11257 94647
19 VAL2 741 540 99874 34216


je voudrais ceci :

Table1.val1 | Table1.val2 | Table2.val1 | Table2.val2 | Table3.val1 | Table4.val1
------------------------------------------------------------------------------
13 VAL1 435 459 45655 31645
14 VAL2 824 359 34545 64578


Peut importe le contenu des autres valeurs, il se peut qu'il y ai des valeurs similaires aussi mais c'est sur une seule colonne que je souhaite filtrer le résultat.


Je ne vois pas comment faire cela. Avec Group By, je ne peux pas conserver le contenu des 4 tables dans chaque ligne. Et je dois absolument les avoir pour la suite de mon programme.

Vers quoi dois-je m'orienter afin de pouvoir filtrer le résultat de ma requête ?

Merci par avance pour toute l'aide que vous pourrez m'apporter.

PS, voici ma requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT PX.*, LCLASS1.*, prt.*, sup.* FROM LCLASS1
INNER JOIN PX ON LCLASS1.PartCode = PX.PX_SSALDOC AND LCLASS1.Refnumber = PX.PX_CODE
INNER JOIN prt ON PX.PX_SSDC = prt.partcode
INNER JOIN sup ON PX.PX_MARQUE = sup.supcode
WHERE (Refnumber='27407') AND (sup.Actif = 1)
ORDER BY PX.PX_INTERNETTTC ASC
=> Grâce au Refnumber, j'obtient mes 7 lignes avec un LCLASS1.Code qui se répète et sur lequel je souhaite ne faire remonter qu'une seule ligne par LCLASS1.Code identique.