Barsy
Messages postés13Date d'inscriptiondimanche 8 mai 2005StatutMembreDernière intervention12 février 2008
-
8 févr. 2008 à 11:44
Barsy
Messages postés13Date d'inscriptiondimanche 8 mai 2005StatutMembreDernière intervention12 février 2008
-
12 févr. 2008 à 11:08
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"
Barsy
Messages postés13Date d'inscriptiondimanche 8 mai 2005StatutMembreDernière intervention12 février 2008 12 févr. 2008 à 11:08
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.
pneau
Messages postés258Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention27 octobre 20105 8 févr. 2008 à 14:00
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