Da Usenet Box

(Loaded from cache...)

Path: news.free.fr !spooler2c-2.proxad.net !cleanfeed3-a.proxad.net !nnrp12-2.free.fr !not-for-mail
Date: Wed, 21 Jul 2010 20:45:31 +0200
From: helios <helios@com02.net>
User-Agent: Thunderbird 1.5.0.7 (Windows/20060909)
MIME-Version: 1.0
Newsgroups: fr.comp.applications.sgbd
Subject: Re: afficher =?ISO-8859-1?Q?l=27=E9tudiant_le_plus_ag=E9_?=
=?ISO-8859-1?Q?de_chaque_classe_=3F?=
References: <i23lba$6fq$1@speranza.aioe.org> <4c46f1a7$0$687$426a74cc@news.free.fr>
In-Reply-To: -- nospam --
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 74
Message-ID: <4c4742e7$0$431$426a34cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 21 Jul 2010 20:56:39 MEST
NNTP-Posting-Host: 88.175.144.136
X-Trace: 1279738599 news-4.free.fr 431 88.175.144.136:1045
X-Complaints-To: abuse@proxad.net


SQLpro a écrit :
> -- les tables
> CREATE TABLE t_etudiant
> (
> etudiant_id INTEGER PRIMARY KEY NOT NULL,
> date_naissance DATE NOT NULL
> );
>
> CREATE TABLE t_classe
> (
> classe_id INTEGER PRIMARY KEY NOT NULL,
> classe_nom VARCHAR(200)
> );
>
> CREATE TABLE t_etudiant_classes
> (
> classe_id INTEGER,
> etudiant_id INTEGER,
> PRIMARY KEY (etudiant_id, classe_id)
> );
>
> -- un jeu d'essai :
>
> INSERT INTO t_etudiant
> VALUES (1, '1900-01-01'),
> (2, '1910-01-01'),
> (3, '1920-01-01'),
> (4, '1910-01-01'),
> (5, '1930-01-01'),
> (6, '1940-01-01'),
> (7, '1950-01-01');
>
> INSERT INTO t_classe
> VALUES (1, 'chant'), (2, 'musique'), (3, 'danse');
>
> INSERT INTO t_etudiant_classes
> VALUES (1, 2), (1, 4), (1, 7),
> (2, 1), (2, 4), (2, 6),
> (3, 3), (3, 5), (3, 6);
>
> -- la solution :
>
> 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;
>
> -- le résultat :
>
> classe_id etudiant_id date_naissance
> ----------- ----------- --------------
> 1 2 1910-01-01
> 1 4 1910-01-01
> 2 1 1900-01-01
> 3 3 1920-01-01
>
> Pour apprendre le SQL;, mon site, comme mon bouquin est là pour vous
> aider !
>
> A +
>
>
avec le Gay Motard Club ont est jamais trop aidé :-) sacré Fred


Cette page est valide XTHML 1.1 et CSS