WITH T AS ( SELECT classe_id, MIN(date_naissance) AS DN_max FROM t_etudiant_classes AS EC INNER JOIN t_etudiant AS E ON EC.etudiant_id = E.etudiant_id GROUP BY classe_id ) SELECT classe_id, E.* FROM T INNER JOIN t_etudiant AS E ON T.DN_max = E.date_naissance ORDER BY classe_id;
Pour apprendre le SQL;, mon site, comme mon bouquin est là pour vous aider !
A +
-- Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66 Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
Pierre a écrit :
bonjour
je dois afficher pour chaque classe l'étudiant le plus agé, mais un étudiant peut être dans plusieurs classes.
j'ai les tables existantes comme ca :
t_etudiant ( etudiant_id INTEGER PRIMARY KEY NOT NULL, date_naissance DATE NOT NULL );
WITH T
AS
(
SELECT classe_id, MIN(date_naissance) AS DN_max
FROM t_etudiant_classes AS EC
INNER JOIN t_etudiant AS E
ON EC.etudiant_id = E.etudiant_id
GROUP BY classe_id
)
SELECT classe_id, E.*
FROM T
INNER JOIN t_etudiant AS E
ON T.DN_max = E.date_naissance
ORDER BY classe_id;
Pour apprendre le SQL;, mon site, comme mon bouquin est là pour vous aider !
A +
--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Pierre a écrit :
bonjour
je dois afficher pour chaque classe l'étudiant le plus agé, mais un étudiant
peut être dans plusieurs classes.
j'ai les tables existantes comme ca :
t_etudiant
(
etudiant_id INTEGER PRIMARY KEY NOT NULL,
date_naissance DATE NOT NULL
);
WITH T AS ( SELECT classe_id, MIN(date_naissance) AS DN_max FROM t_etudiant_classes AS EC INNER JOIN t_etudiant AS E ON EC.etudiant_id = E.etudiant_id GROUP BY classe_id ) SELECT classe_id, E.* FROM T INNER JOIN t_etudiant AS E ON T.DN_max = E.date_naissance ORDER BY classe_id;
Pour apprendre le SQL;, mon site, comme mon bouquin est là pour vous aider !
A +
-- Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66 Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
Pierre a écrit :
bonjour
je dois afficher pour chaque classe l'étudiant le plus agé, mais un étudiant peut être dans plusieurs classes.
j'ai les tables existantes comme ca :
t_etudiant ( etudiant_id INTEGER PRIMARY KEY NOT NULL, date_naissance DATE NOT NULL );
WITH T AS ( SELECT classe_id, MIN(date_naissance) AS DN_max FROM t_etudiant_classes AS EC INNER JOIN t_etudiant AS E ON EC.etudiant_id = E.etudiant_id GROUP BY classe_id ) SELECT classe_id, E.* FROM T INNER JOIN t_etudiant AS E ON T.DN_max = E.date_naissance ORDER BY classe_id;
WITH T
AS
(
SELECT classe_id, MIN(date_naissance) AS DN_max
FROM t_etudiant_classes AS EC
INNER JOIN t_etudiant AS E
ON EC.etudiant_id = E.etudiant_id
GROUP BY classe_id
)
SELECT classe_id, E.*
FROM T
INNER JOIN t_etudiant AS E
ON T.DN_max = E.date_naissance
ORDER BY classe_id;
WITH T AS ( SELECT classe_id, MIN(date_naissance) AS DN_max FROM t_etudiant_classes AS EC INNER JOIN t_etudiant AS E ON EC.etudiant_id = E.etudiant_id GROUP BY classe_id ) SELECT classe_id, E.* FROM T INNER JOIN t_etudiant AS E ON T.DN_max = E.date_naissance ORDER BY classe_id;