{Access} Deux derniers enregistrements?

Fermé
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 - 7 nov. 2009 à 02:29
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 - 6 déc. 2009 à 23:51
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 samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
7 nov. 2009 à 09:11
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 mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
7 nov. 2009 à 09:49
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 26543 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 21 décembre 2024 3 318
7 nov. 2009 à 12:02
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 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
8 nov. 2009 à 08:32
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 samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 4
15 nov. 2009 à 12:26
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 samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
15 nov. 2009 à 17:27
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 samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 4
23 nov. 2009 à 20:02
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 samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
23 nov. 2009 à 20:05
Enleve ton order by voir si l'erreur est tjs la meme
0
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 4
23 nov. 2009 à 20:07
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 samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 4
23 nov. 2009 à 20:11
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 samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
23 nov. 2009 à 20:42
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 samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 4
24 nov. 2009 à 00:04
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 mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
24 nov. 2009 à 07:46
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 samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 4
6 déc. 2009 à 23:51
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