{Access} Deux derniers enregistrements?

js8bleu Messages postés 576 Date d'inscription   Statut Membre Dernière intervention   -  
js8bleu Messages postés 576 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai une table examen et j'aimerai récupérer les deux derniers enregistrements de cette table où le numéro du patient est 7. Quelqu'un pourrait-il m'aider s'il vous plaît?

NB : J'utilise Access 2003. Voici la structure de la table examen :
Examen(numexamen,dateexamen,nomexamen,numpatient)

Merci d'avance.

Cordialement.
A voir également:

14 réponses

moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
bonjour

la requete que tu desire est la suivante:

SELECT top 2, * from examen where numpatient = 7
0
Jean_Jacques Messages postés 1040 Date d'inscription   Statut Membre Dernière intervention   112
 
Bonjour js8bleu,

Sur une de mes tables, choisie arbitrairement, j'obtiens le résultat recherché comme suit :
Principe : Tri décroissant sur le critére principal, puis extraction des 2 premières occurrences issues de ce tri ayant 7 comme 2 ème critère ...

C'est tordu, mais ça le fait, comme on dit .....

SELECT TOP 2 First(VALEURS_1.RéfValeur) AS PremierDeRéfValeur, VALEURS_1.Valeur, VALEURS_1.Cours, VALEURS_1.RéfProfil
FROM VALEURS AS VALEURS_1
GROUP BY VALEURS_1.Valeur, VALEURS_1.Cours, VALEURS_1.RéfProfil
HAVING (((VALEURS_1.RéfProfil)= 7))
ORDER BY VALEURS_1.Valeur DESC;

Cordialement
0
blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

il faut faire attention aux 'premiers' ou 'derniers' enregistrements d'une base de données... Ils ne sont pas toujours renvoyés dans l'ordre qu'on attend...
0
moderno31 Messages postés 872 Date d'inscription   Statut Membre Dernière intervention   92
 
Si c'est les 2 derniers en se basant sur le numexamen, tu fait un
select top 2 from examen order by numexamen DESC
Sans trier la requete il va te renvoyer par défaut les premier. Voici un moyen simple d'arriver à ton but.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
js8bleu Messages postés 576 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour à tous,

je vous remercie pour vos interventions et je vous pries de bien vouloir m'excuser pour ce long silence. J'ai testé vos requêtes qui marchent à merveille. Malheureusement, je me suis trompé dans ce que je voulais. Je voudrais plutôt avoir le dernier et l'avant-dernier enregistrement concernant le patient numéro 7 (dans des requêtes différentes) s'il vous plaît.

Merci d'avance pour votre aide salvatrice.

Cordialement.
0
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
tu peux faire ca:

SELECT TOP 2 n°, numpatient
FROM ta_table
where numpatient = 7
ORDER BY n° DESC;


n° reprente le n° d enregistrement si tu ne la pas ajoute le a ta table tres simple avec numero auto
0
js8bleu Messages postés 576 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour chers Gourous du SQL,

je n'y arrive décidément pas. J'ai tout tenté mais en vain. Savez-vous comment faire pour afficher des données selon une sous-requête dont le résultat affiche deux enregistrements s'ils vous plaît?

SELECT D.numdossier, D.datedossier, D.resultat, D.commentaire, D.medecintraitant, E.nomexamen, N.desnature, PR.nompropriete, D.numpatient, PA.nompatient, PA.prenompatient, PA.datenaisspatient, PA.sexepatient, PA.contactpatient, V.valpatient, V.valnormale, V.interpretation
FROM tabledossier AS D, tableexamen AS E, tablenature AS N, tablepropriete AS PR, tablepatient AS PA, tablevaleur AS V
WHERE D.numexamen=E.numexamen And E.numnature=N.numnature And D.numpatient=PA.numpatient And D.numdossier=V.numdossier And V.numpropriete=PR.numpropriete And D.numdossier = 
(SELECT D.numdossier
FROM tabledossier AS D, tableexamen AS E
WHERE D.numexamen = E.numexamen And E.nomexamen = "CULOT URINAIRE" And D.numpatient = 3
ORDER BY D.numdossier DESC);



J'ai l'erreur :

Cette sous-requête peut retourner au plus un enregistrement.


Merci d'avance pour votre très précieuse aide.

Cordialement.
0
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
Enleve ton order by voir si l'erreur est tjs la meme
0
js8bleu Messages postés 576 Date d'inscription   Statut Membre Dernière intervention   4
 
Vous pourrez trouver ma base de données ici :

http://www.cijoint.fr/cjlink.php?file=cj200911/cij15m8H9s.zip

En fait, j'essaye de "fusionner" mes requêtes R1 et R2.

Merci d'avance pour votre aide.

Cordialement.
0
js8bleu Messages postés 576 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour et Merci moiced59 pour ton aide. J'ai essayé mais j'ai toujours la même erreur, de plus j'ai besoin du order by pour pouvoir afficher les deux derniers enregistrements. Merci d'avance.

Cordialement.
0
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
re le probleme c ton champ nompropriete ds R2 tu ne peu pas faire de regroupement sur t enregistrement car ce né pas les meme!!!
0
js8bleu Messages postés 576 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci moiced59 pour ton intérêt mais j'ai toujours la même erreur qui s'affiche.

Merci d'avance.

Cordialement
0
Jean_Jacques Messages postés 1040 Date d'inscription   Statut Membre Dernière intervention   112
 
Bonjour js8bleu,

En fait c'est d'une requête UNION dont il est question.

Voir :
http://sql.1keydata.com/fr/sql-union.php

Dans votre cas, la syntaxe de base est :

SELECT R1.numdossier
FROM R1
UNION
SELECT R2.numdossier
FROM R2;



Bonne journée
0
js8bleu Messages postés 576 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour. Merci à tous pour vos propositions. J'ai pu régler mon problème autrement. Excellente soirée et prenez bien soin de vous.

Cordialement.
0