{Access} Deux derniers enregistrements?

js8bleu Messages postés 624 Statut Membre -  
js8bleu Messages postés 624 Statut Membre -
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

14 réponses

  1. moiced59 Messages postés 1161 Statut Membre 60
     
    bonjour

    la requete que tu desire est la suivante:

    SELECT top 2, * from examen where numpatient = 7
    0
  2. Jean_Jacques Messages postés 1045 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
  3. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  4. moderno31 Messages postés 900 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. js8bleu Messages postés 624 Statut Membre 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
  7. moiced59 Messages postés 1161 Statut Membre 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
  8. js8bleu Messages postés 624 Statut Membre 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
  9. moiced59 Messages postés 1161 Statut Membre 60
     
    Enleve ton order by voir si l'erreur est tjs la meme
    0
  10. js8bleu Messages postés 624 Statut Membre 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
  11. js8bleu Messages postés 624 Statut Membre 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
  12. moiced59 Messages postés 1161 Statut Membre 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
  13. js8bleu Messages postés 624 Statut Membre 4
     
    Merci moiced59 pour ton intérêt mais j'ai toujours la même erreur qui s'affiche.

    Merci d'avance.

    Cordialement
    0
  14. Jean_Jacques Messages postés 1045 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
  15. js8bleu Messages postés 624 Statut Membre 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