Bonjour à tous,
Je suis débutante en SQL et je galère depuis quelques temps sur une requête.
Je possède 3 tables: T01, T02 et T03
Je souhaite lier ces 3 tables et piocher les paramètres suivants: T02.CSCI, T01.DEDT, T01.CPER, T01.LRAD, T02.NUCH, T03.CPCK, T03.NBVI, T03.NUVI, T03.CNVA, T01.NFCD pour obtenir ce genre de tableau là:
CSCI DEDT CPER LRAD NUCH CPCK NBVI NUVI CNVA NFCD 01 11/12/2015 3000 X Y PA1 2 2 A21 8000 01 12/12/2014 3000 X Y PA1 2 1 A11 8001
Mon problème, c'est que j'aimerais faire un regroupement sur la colonne T01.CPER en gardant la ligne où T01.DEDT est la plus récente (donc ma première ligne dans mon tableau d'exemple). J'ai du coup essayer avec un Group by en mettant dans mon SELECT: max(T01.DEDT). Mais ça ne fonctionne pas. Il garde quand même les deux lignes.
Si vous pouviez m'aiguiller, ce serait super.
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
20
21 SELECT T02.CSCI ,MAX(T01.DEDT) AS DEDT ,T01.CPER ,T01.LRAD ,T02.NUCH ,T03.CPCK ,T03.NBVI ,T03.NUVI ,T03.CNVA ,T01.NFCD FROM T01 INNER JOIN T02 ON(T01.CPER = T02.CPER) LEFT OUTER JOIN T03 ON (T01.NFCD=T03.NFCD) WHERE T03.NUVI<>T03.NBVI GROUP BY T01.CPER, T02.CSCI, T01.LRAD, T02.NUCH, T03.CPCK, T03.NBVI, T03.CNVA, T01.NFCD, T03.NUVI
Merci d'avance pour vos réponses.
Partager