Rechercher : dans
Par :

{Access} Deux derniers enregistrements?

Dernière réponse le 24 nov 2009 à 07:46:42 js8bleu, le 7 nov 2009 à 02:29:16 
 Signaler ce message aux modérateurs

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.

Configuration: Windows Vista
Firefox 3.0.15

Meilleures réponses pour « {Access} Deux derniers enregistrements? » dans :
Télécharger Windows XP SP2 VoirLes Service Packs constituent un moyen pratique, tout en un, d'accéder aux derniers pilotes, outils et améliorations en matière de sécurité, ainsi qu'à d'autres mises à jour critiques. Windows XP SP2 (Service Pack 2), le dernier Service Pack pour...
Télécharger MeuhMeuh TV VoirMeuhMeuhTV est un logiciel français permettant de remplacer avantageusement et efficacement celui fourni d'origine avec votre carte tuner TV. MeuhMeuhTV est capable de gérer simultanément plusieurs sources vidéos. Fonctionnalités de...

1

moiced59, le 7 nov 2009 à 09:11:22

Bonjour

la requete que tu desire est la suivante:

SELECT top 2, * from examen where numpatient = 7

Répondre à moiced59

2

Jean_Jacques, le 7 nov 2009 à 09:49:46

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 La science ne fait que trouver ce qui existe depuis toujours­.
REEVES Hubert.

Répondre à Jean_Jacques

3

blux, le 7 nov 2009 à 12:02:14

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...

A+ Blux           

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

4

moderno31, le 8 nov 2009 à 08:32:56

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. Moderno31

Répondre à moderno31

5

js8bleu, le 15 nov 2009 à 12:26:32

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.

Répondre à js8bleu

6

moiced59, le 15 nov 2009 à 17:27:45

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

Répondre à moiced59

7

js8bleu, le 23 nov 2009 à 20:02:33

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.

Répondre à js8bleu

8

moiced59, le 23 nov 2009 à 20:05:33

Enleve ton order by voir si l'erreur est tjs la meme

Répondre à moiced59

9

js8bleu, le 23 nov 2009 à 20:07:59

Vous pourrez trouver ma base de données ici :

http://www.cijoint.fr/cjlink.php?file=cj200911/cij15m8H9s.zi­p

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

Merci d'avance pour votre aide.

Cordialement.

Répondre à js8bleu

10

js8bleu, le 23 nov 2009 à 20:11:35

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.

Répondre à js8bleu

11

moiced59, le 23 nov 2009 à 20:42:15

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!!!

Répondre à moiced59

12

js8bleu, le 24 nov 2009 à 00:04:12

Merci moiced59 pour ton intérêt mais j'ai toujours la même erreur qui s'affiche.

Merci d'avance.

Cordialement

Répondre à js8bleu

13

 Jean_Jacques, le 24 nov 2009 à 07:46:42

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 La science ne fait que trouver ce qui existe depuis toujours­.
REEVES Hubert.

Répondre à Jean_Jacques