Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel__D
Bonjour,
daniel a écrit :
Bonjour,
J'ai une table avec des ID faites à plusieurs date.
Je veux faire une requête pour sortir les 2 date les plus récentes pour chaque ID.
Tu peux créer une requête qui compte les enregistrements par ID avec la valeur 1 pour la date la plus récente ensuite avec une autre requête tu sélectionne les enregistrements dont le compte <= 2.
PS:Je donnerai une solution demain, cela te laisse la nuit pour y réfléchir.
Bonjour,
daniel a écrit :
Bonjour,
J'ai une table avec des ID faites à plusieurs date.
Je veux faire une requête pour sortir les 2 date les plus récentes pour
chaque ID.
Tu peux créer une requête qui compte les enregistrements par ID avec
la valeur 1 pour la date la plus récente ensuite avec une autre
requête tu sélectionne les enregistrements dont le compte <= 2.
PS:Je donnerai une solution demain, cela te laisse la nuit pour y réfléchir.
J'ai une table avec des ID faites à plusieurs date.
Je veux faire une requête pour sortir les 2 date les plus récentes pour chaque ID.
Tu peux créer une requête qui compte les enregistrements par ID avec la valeur 1 pour la date la plus récente ensuite avec une autre requête tu sélectionne les enregistrements dont le compte <= 2.
PS:Je donnerai une solution demain, cela te laisse la nuit pour y réfléchir.
Michel__D
daniel a écrit :
Bonjour,
J'ai une table avec des ID faites à plusieurs date.
Je veux faire une requête pour sortir les 2 date les plus récentes pour chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr FROM ReqCompte WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente :
SELECT T1.ID, T1.DateEnr FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr HAVING Count(T2.DateEnr)<=2;
daniel a écrit :
Bonjour,
J'ai une table avec des ID faites à plusieurs date.
Je veux faire une requête pour sortir les 2 date les plus récentes pour
chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution
à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr
FROM ReqCompte
WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente :
SELECT T1.ID, T1.DateEnr
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
GROUP BY T1.ID, T1.DateEnr
HAVING Count(T2.DateEnr)<=2;
J'ai une table avec des ID faites à plusieurs date.
Je veux faire une requête pour sortir les 2 date les plus récentes pour chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr FROM ReqCompte WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente :
SELECT T1.ID, T1.DateEnr FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr HAVING Count(T2.DateEnr)<=2;
daniel
"Michel__D" a écrit :
daniel a écrit : > Bonjour, > > J'ai une table avec des ID faites à plusieurs date. > > Je veux faire une requête pour sortir les 2 date les plus récentes pour > chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr FROM ReqCompte WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente :
SELECT T1.ID, T1.DateEnr FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr HAVING Count(T2.DateEnr)<=2;
Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
"Michel__D" a écrit :
daniel a écrit :
> Bonjour,
>
> J'ai une table avec des ID faites à plusieurs date.
>
> Je veux faire une requête pour sortir les 2 date les plus récentes pour
> chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution
à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr
FROM ReqCompte
WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente :
SELECT T1.ID, T1.DateEnr
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
GROUP BY T1.ID, T1.DateEnr
HAVING Count(T2.DateEnr)<=2;
Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
daniel a écrit : > Bonjour, > > J'ai une table avec des ID faites à plusieurs date. > > Je veux faire une requête pour sortir les 2 date les plus récentes pour > chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr FROM ReqCompte WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente :
SELECT T1.ID, T1.DateEnr FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr HAVING Count(T2.DateEnr)<=2;
Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
Thom
Bonjour,
J'ai une autre solution qui semble fonctionner dans tous les cas et qui peut facilement être adapté pour retourner x dates :
Bonne journée,
Thomas
SELECT ID, DateEnr FROM LaTable AS T1 WHERE T1.DateEnr IN ( SELECT TOP 2 DateEnr FROM LaTable HAVING ID = T1.ID GROUP BY ID, DateEnr ORDER BY DESC);
"daniel" a écrit dans le message de news:
"Michel__D" a écrit :
daniel a écrit : > Bonjour, > > J'ai une table avec des ID faites à plusieurs date. > > Je veux faire une requête pour sortir les 2 date les plus récentes pour > chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr FROM ReqCompte WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente :
SELECT T1.ID, T1.DateEnr FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr HAVING Count(T2.DateEnr)<=2;
Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
Bonjour,
J'ai une autre solution qui semble fonctionner dans tous les cas et qui peut
facilement être adapté pour retourner x dates :
Bonne journée,
Thomas
SELECT ID, DateEnr
FROM LaTable AS T1
WHERE T1.DateEnr IN ( SELECT TOP 2 DateEnr
FROM LaTable
HAVING ID = T1.ID
GROUP BY ID, DateEnr
ORDER BY DESC);
"daniel" <daniel@discussions.microsoft.com> a écrit dans le message de news:
7C225C17-0800-4EB2-89DF-79D8636E71F1@microsoft.com...
"Michel__D" a écrit :
daniel a écrit :
> Bonjour,
>
> J'ai une table avec des ID faites à plusieurs date.
>
> Je veux faire une requête pour sortir les 2 date les plus récentes pour
> chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution
à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr
FROM ReqCompte
WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente
:
SELECT T1.ID, T1.DateEnr
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
GROUP BY T1.ID, T1.DateEnr
HAVING Count(T2.DateEnr)<=2;
Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
J'ai une autre solution qui semble fonctionner dans tous les cas et qui peut facilement être adapté pour retourner x dates :
Bonne journée,
Thomas
SELECT ID, DateEnr FROM LaTable AS T1 WHERE T1.DateEnr IN ( SELECT TOP 2 DateEnr FROM LaTable HAVING ID = T1.ID GROUP BY ID, DateEnr ORDER BY DESC);
"daniel" a écrit dans le message de news:
"Michel__D" a écrit :
daniel a écrit : > Bonjour, > > J'ai une table avec des ID faites à plusieurs date. > > Je veux faire une requête pour sortir les 2 date les plus récentes pour > chaque ID.
Dans la mesure au chaque ID posséde plusieurs dates voici une solution à adapter en 2 requêtes (mode SQL) :
La 1ère requête qui compte nommée [ReqCompte] :
SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr;
La 2ème requête qui donne le résultat souhaité :
SELECT T1.ID, T1.DateEnr FROM ReqCompte WHERE T1.Rang<=2;
Et voici une autre solution qui est un condensé de la solution précédente :
SELECT T1.ID, T1.DateEnr FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) GROUP BY T1.ID, T1.DateEnr HAVING Count(T2.DateEnr)<=2;
Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
daniel
Effectivement ça fonctionne mieux. Merci Thom. Daniel.
"Thom" a écrit :
Bonjour,
J'ai une autre solution qui semble fonctionner dans tous les cas et qui peut facilement être adapté pour retourner x dates :
Bonne journée,
Thomas
SELECT ID, DateEnr FROM LaTable AS T1 WHERE T1.DateEnr IN ( SELECT TOP 2 DateEnr FROM LaTable HAVING ID = T1.ID GROUP BY ID, DateEnr ORDER BY DESC);
"daniel" a écrit dans le message de news:
> > > "Michel__D" a écrit : > >> daniel a écrit : >> > Bonjour, >> > >> > J'ai une table avec des ID faites à plusieurs date. >> > >> > Je veux faire une requête pour sortir les 2 date les plus récentes pour >> > chaque ID. >> >> Dans la mesure au chaque ID posséde plusieurs dates voici une solution >> à adapter en 2 requêtes (mode SQL) : >> >> La 1ère requête qui compte nommée [ReqCompte] : >> >> SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang >> FROM LaTable AS T1 INNER JOIN LaTable AS T2 >> ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) >> GROUP BY T1.ID, T1.DateEnr; >> >> La 2ème requête qui donne le résultat souhaité : >> >> SELECT T1.ID, T1.DateEnr >> FROM ReqCompte >> WHERE T1.Rang<=2; >> >> >> Et voici une autre solution qui est un condensé de la solution précédente >> : >> >> SELECT T1.ID, T1.DateEnr >> FROM LaTable AS T1 INNER JOIN LaTable AS T2 >> ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) >> GROUP BY T1.ID, T1.DateEnr >> HAVING Count(T2.DateEnr)<=2; >> > Merci beaucoup Michel_D > > ta solution marche, sauf quand il y a deux dates identique >
Effectivement ça fonctionne mieux.
Merci Thom.
Daniel.
"Thom" a écrit :
Bonjour,
J'ai une autre solution qui semble fonctionner dans tous les cas et qui peut
facilement être adapté pour retourner x dates :
Bonne journée,
Thomas
SELECT ID, DateEnr
FROM LaTable AS T1
WHERE T1.DateEnr IN ( SELECT TOP 2 DateEnr
FROM LaTable
HAVING ID = T1.ID
GROUP BY ID, DateEnr
ORDER BY DESC);
"daniel" <daniel@discussions.microsoft.com> a écrit dans le message de news:
7C225C17-0800-4EB2-89DF-79D8636E71F1@microsoft.com...
>
>
> "Michel__D" a écrit :
>
>> daniel a écrit :
>> > Bonjour,
>> >
>> > J'ai une table avec des ID faites à plusieurs date.
>> >
>> > Je veux faire une requête pour sortir les 2 date les plus récentes pour
>> > chaque ID.
>>
>> Dans la mesure au chaque ID posséde plusieurs dates voici une solution
>> à adapter en 2 requêtes (mode SQL) :
>>
>> La 1ère requête qui compte nommée [ReqCompte] :
>>
>> SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang
>> FROM LaTable AS T1 INNER JOIN LaTable AS T2
>> ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
>> GROUP BY T1.ID, T1.DateEnr;
>>
>> La 2ème requête qui donne le résultat souhaité :
>>
>> SELECT T1.ID, T1.DateEnr
>> FROM ReqCompte
>> WHERE T1.Rang<=2;
>>
>>
>> Et voici une autre solution qui est un condensé de la solution précédente
>> :
>>
>> SELECT T1.ID, T1.DateEnr
>> FROM LaTable AS T1 INNER JOIN LaTable AS T2
>> ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
>> GROUP BY T1.ID, T1.DateEnr
>> HAVING Count(T2.DateEnr)<=2;
>>
> Merci beaucoup Michel_D
>
> ta solution marche, sauf quand il y a deux dates identique
>
Effectivement ça fonctionne mieux. Merci Thom. Daniel.
"Thom" a écrit :
Bonjour,
J'ai une autre solution qui semble fonctionner dans tous les cas et qui peut facilement être adapté pour retourner x dates :
Bonne journée,
Thomas
SELECT ID, DateEnr FROM LaTable AS T1 WHERE T1.DateEnr IN ( SELECT TOP 2 DateEnr FROM LaTable HAVING ID = T1.ID GROUP BY ID, DateEnr ORDER BY DESC);
"daniel" a écrit dans le message de news:
> > > "Michel__D" a écrit : > >> daniel a écrit : >> > Bonjour, >> > >> > J'ai une table avec des ID faites à plusieurs date. >> > >> > Je veux faire une requête pour sortir les 2 date les plus récentes pour >> > chaque ID. >> >> Dans la mesure au chaque ID posséde plusieurs dates voici une solution >> à adapter en 2 requêtes (mode SQL) : >> >> La 1ère requête qui compte nommée [ReqCompte] : >> >> SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang >> FROM LaTable AS T1 INNER JOIN LaTable AS T2 >> ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) >> GROUP BY T1.ID, T1.DateEnr; >> >> La 2ème requête qui donne le résultat souhaité : >> >> SELECT T1.ID, T1.DateEnr >> FROM ReqCompte >> WHERE T1.Rang<=2; >> >> >> Et voici une autre solution qui est un condensé de la solution précédente >> : >> >> SELECT T1.ID, T1.DateEnr >> FROM LaTable AS T1 INNER JOIN LaTable AS T2 >> ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) >> GROUP BY T1.ID, T1.DateEnr >> HAVING Count(T2.DateEnr)<=2; >> > Merci beaucoup Michel_D > > ta solution marche, sauf quand il y a deux dates identique >
Michel__D
Bonjour,
"daniel" a écrit dans le message de news:
"Michel__D" a écrit :
> daniel a écrit : > > Bonjour, > > > > J'ai une table avec des ID faites à plusieurs date. > > > > Je veux faire une requête pour sortir les 2 date les plus récentes pour > > chaque ID. > > Dans la mesure au chaque ID posséde plusieurs dates voici une solution > à adapter en 2 requêtes (mode SQL) : > > La 1ère requête qui compte nommée [ReqCompte] : > > SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang > FROM LaTable AS T1 INNER JOIN LaTable AS T2 > ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) > GROUP BY T1.ID, T1.DateEnr; > > La 2ème requête qui donne le résultat souhaité : > > SELECT T1.ID, T1.DateEnr > FROM ReqCompte > WHERE T1.Rang<=2; > > > Et voici une autre solution qui est un condensé de la solution précédente : > > SELECT T1.ID, T1.DateEnr > FROM LaTable AS T1 INNER JOIN LaTable AS T2 > ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) > GROUP BY T1.ID, T1.DateEnr > HAVING Count(T2.DateEnr)<=2; > Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
Dans ce cas essaye ceci :
SELECT T1.ID, T1.DateEnr FROM LaTable AS T1 WHERE T1.DateEnr In (SELECT TOP 2 DateEnr FROM LaTable WHERE ID=T1.ID ORDER BY DateEnr DESC);
Bonjour,
"daniel" <daniel@discussions.microsoft.com> a écrit dans le message de news:7C225C17-0800-4EB2-89DF-79D8636E71F1@microsoft.com...
"Michel__D" a écrit :
> daniel a écrit :
> > Bonjour,
> >
> > J'ai une table avec des ID faites à plusieurs date.
> >
> > Je veux faire une requête pour sortir les 2 date les plus récentes pour
> > chaque ID.
>
> Dans la mesure au chaque ID posséde plusieurs dates voici une solution
> à adapter en 2 requêtes (mode SQL) :
>
> La 1ère requête qui compte nommée [ReqCompte] :
>
> SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang
> FROM LaTable AS T1 INNER JOIN LaTable AS T2
> ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
> GROUP BY T1.ID, T1.DateEnr;
>
> La 2ème requête qui donne le résultat souhaité :
>
> SELECT T1.ID, T1.DateEnr
> FROM ReqCompte
> WHERE T1.Rang<=2;
>
>
> Et voici une autre solution qui est un condensé de la solution précédente :
>
> SELECT T1.ID, T1.DateEnr
> FROM LaTable AS T1 INNER JOIN LaTable AS T2
> ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr)
> GROUP BY T1.ID, T1.DateEnr
> HAVING Count(T2.DateEnr)<=2;
>
Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
Dans ce cas essaye ceci :
SELECT T1.ID, T1.DateEnr
FROM LaTable AS T1
WHERE T1.DateEnr In
(SELECT TOP 2 DateEnr
FROM LaTable
WHERE ID=T1.ID
ORDER BY DateEnr DESC);
> daniel a écrit : > > Bonjour, > > > > J'ai une table avec des ID faites à plusieurs date. > > > > Je veux faire une requête pour sortir les 2 date les plus récentes pour > > chaque ID. > > Dans la mesure au chaque ID posséde plusieurs dates voici une solution > à adapter en 2 requêtes (mode SQL) : > > La 1ère requête qui compte nommée [ReqCompte] : > > SELECT T1.ID, T1.DateEnr, Count(T2.DateEnr) AS Rang > FROM LaTable AS T1 INNER JOIN LaTable AS T2 > ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) > GROUP BY T1.ID, T1.DateEnr; > > La 2ème requête qui donne le résultat souhaité : > > SELECT T1.ID, T1.DateEnr > FROM ReqCompte > WHERE T1.Rang<=2; > > > Et voici une autre solution qui est un condensé de la solution précédente : > > SELECT T1.ID, T1.DateEnr > FROM LaTable AS T1 INNER JOIN LaTable AS T2 > ON (T1.ID=T2.ID And T1.DateEnr<=T2.DateEnr) > GROUP BY T1.ID, T1.DateEnr > HAVING Count(T2.DateEnr)<=2; > Merci beaucoup Michel_D
ta solution marche, sauf quand il y a deux dates identique
Dans ce cas essaye ceci :
SELECT T1.ID, T1.DateEnr FROM LaTable AS T1 WHERE T1.DateEnr In (SELECT TOP 2 DateEnr FROM LaTable WHERE ID=T1.ID ORDER BY DateEnr DESC);