Select max [Résolu]

Signaler
Messages postés
13
Date d'inscription
dimanche 8 mai 2005
Statut
Membre
Dernière intervention
12 février 2008
-
Messages postés
13
Date d'inscription
dimanche 8 mai 2005
Statut
Membre
Dernière intervention
12 février 2008
-
Bonjour

J'ai un soucis de requete,

J'ai deux table de type

table1
----
tab1_Id
tab2_Id
date1
date2

table2
----
tab2_Id

la clé primaire de table2 est une clé secondaire de table1

ce que j'essaie d'obtenir, c'est la valeur max de date1 ainsi que la date2 deux associé à la valeur max de date1 pour chaque ligne de table2

j'ai tenté une requete du style :
SELECT
    table2.tab2_Id
    MAX(table1.date1) AS madate  
    table1.date2
FROM
    table2
    INNER JOIN table1 IN table2.tab2_Id = table1.tab1_Id
GROUP BY table2.tab2_Id, table1.date2
HAVING MAX(madate) = madate

Sans le "HAVING", il me retourne toutes les date1 sur plusieurs ligne et avec il me retourne une erreur comme quoi il ne reconnait pas "madate"

2 réponses

Messages postés
13
Date d'inscription
dimanche 8 mai 2005
Statut
Membre
Dernière intervention
12 février 2008

Ta solution ne marche pas :

Il ne reconnait pas la table T1 dans le second Select (apparement les éléments déclarés dans un select fonctionnent en local à l'intérieur du select)

Après moultes recherches, j'ai enfin trouvé la solution :

SELECT Table2.tab2_Id
MAX(T1.Date1) AS madate1,
(SELECT T2.Date2 Table1 T2
WHERE Table2.Tab2_Id = T2.Tab2_Id
AND
T2.Tab2_Id = T1.Tab2_Id
AND
MAX(T1.Date1) = T2.Date1
GROUP BY Date2
) AS madate2
FROM
Table2
LEFT JOIN Table1 T1 ON Table2.Tab2_Id = T1.Tab2_Id
GROUP BY Table2.Tab2_Id, T1.Tab2_Id

Il ne faut surtout pas oublier le GROUP BY à la fin de chaque select.

Je te remercie tout de même pour ta réponse pneau, elle m'a mis sur la voie.
Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
3
salut,
essai ceci
Select Table2.tab2_Id,
(Select Max(Date1) From Table1 as T1 Where T1.Tab2_id = Table2.tab2_id) as MaDate1,(Select date2 from table1 as t2 Where T2.Tab2_ID Table2.tab2_id And t2.Tab1_ID t1.Tab1_ID) as MaDate1
From Table2

@+

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée