IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Afficher dernier enregistrement selon ID


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 48
    Points : 29
    Points
    29
    Par défaut Afficher dernier enregistrement selon ID
    Bonjour à tous,

    Je vous expose un peu mon problème :

    J'ai plusieurs ID ( qui peuvent être plusieurs fois les même ) et des commentaires pour chaque ID

    Par exemple :
    ID 1, commentaire 1
    ID 1, commentaire 2
    ID 2, commentaire 3
    ID 3, commentaire 4
    ID 3, commentaire 5
    ID 3, commentaire 6
    etc ...

    Je voudrais afficher le dernier commentaire de chaque ID

    Ici le résultat attendu serait donc :
    ID 1, commentaire 2
    ID 2, commentaire 3
    ID 3, commentaire 6
    etc ...

    Quelqu'un a une idée?

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    J'espére que ton ID n'est pas une clé...

    As tu un champs DATE ?

    Sinon tu devrais penser à le rajouter !


  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 48
    Points : 29
    Points
    29
    Par défaut
    Non non, ce n'est pas une clé.

    Oui, j'ai bien un champ date (qui est en timestamp)

    Une idée sur le genre de requête?

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Avec une requête imbriquée qui récupére la date la plus récente...

    As tu commencé une ébauche de requête ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 48
    Points : 29
    Points
    29
    Par défaut
    J'ai fait une requête qui maffiche la liste des ID(qui sont les ref_num), des commentaires (qui sont les description) avec le champ date (le last_mod_dt)
    Mais je n'arrive pas à trouver la requete pour comparer les dates entre elles

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SELECT
    	Convert(int, t2.ref_num) "Ref_Num",
    	t1.description,
    	t2.last_mod_dt
    FROM 
    	Act_log "t1",
    	call_req "t2"
    WHERE
    	t1.type = 'LOG'
    	AND t1.call_req_id = t2.persid
    	AND t2.ref_num >= '105410'
    	AND t2.ref_num <= '105420'
    ORDER BY
    	t2.ref_num
    Comment je peux faire pour comparer les dates? (elles ont des valeurs du genre : 1 207 142 236 )

  6. #6
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Pourquoi comparer, dans le WHERE tu mets quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    AND t2.last_mod_dt IN (
                                    SELECT
                                           MAX(last_mod_dt)
                                    FROM
                                           call_req
                                    WHERE 
                                             'ici corrélation'
                                    )
    Dans le genre quoi...

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 48
    Points : 29
    Points
    29
    Par défaut
    Euh .... Désolé mais je ne comprends pas ce que tu veux dire par 'ici corrélation'.

    Enfin je pense qu'il faut que j'associe la date maximum à chaque ID mais je ne vois pas comment faire ...

    Ce qui me bloque c'est toujours de comparer les différentes lignes du résultats entre elles :s

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2008
    Messages : 48
    Points : 29
    Points
    29
    Par défaut
    C'est bon ! ! !

    Ce que tu m'a donné est bon et fonctionne sans problème!

    En fait, dans la sous-requête il faut que je remette exactement les même choses que dans la requête.

    Voici la requête finale pour ceux qui voudraient faire le même genre de chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    SELECT
    	Convert(int, t2.ref_num) "Ref_Num",
    	t1.description,
    	t1.system_time
    FROM 
    	Act_log "t1",
    	call_req "t2"
    WHERE
    	t1.type = 'LOG'
    	AND t1.call_req_id = t2.persid
    	AND t2.ref_num >= '105410'
    	AND t2.ref_num <= '105420'
    	AND t1.system_time IN (
    		SELECT
    		            MAX(t1.system_time) AS "sys_time_max"
    	             FROM 
    		             Act_log "t1",
    			call_req "t2"
    		WHERE
    			t1.type = 'LOG'
    			AND t1.call_req_id = t2.persid
    			AND t2.ref_num >= '105410'
    			AND t2.ref_num <= '105420'
    		GROUP BY
    			t2.ref_num
    		)
    ORDER BY
    	t2.ref_num
    (J'ai remplacé le last_mod_dt par le system_time de l'autre table car je me suis rendu compte que le last_mod_dt n'était pas le bon champ de date. )


    Merci beaucoup pour ton aide ! ! !

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 375
    Points : 154
    Points
    154
    Par défaut
    Salut,

    Je ne vois pas l'interet de mettre deux fois les conditions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t1.type = 'LOG'
    	AND t1.call_req_id = t2.persid
    	AND t2.ref_num >= '105410'
    	AND t2.ref_num <= '105420'

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    SELECT
    	Convert(int, t2.ref_num) "Ref_Num",
    	t1.description,
    	t1.system_time
    FROM 
    	Act_log "t1",
    	call_req "t2"
    WHERE
                 t1.system_time IN (
    		SELECT
    		            MAX(t1.system_time) AS "sys_time_max"
    	             FROM 
    		             Act_log "t1",
    			call_req "t2"
    		WHERE
    			t1.type = 'LOG'
    			AND t1.call_req_id = t2.persid
    			AND t2.ref_num >= '105410'
    			AND t2.ref_num <= '105420'
    		GROUP BY
    			t2.ref_num
    		)
    ORDER BY
    	t2.ref_num
    Je pense que ca devrait passer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher dernier enregistrement
    Par Hombe dans le forum IHM
    Réponses: 5
    Dernier message: 12/01/2009, 12h31
  2. [A-07] Afficher dernier enregistrement
    Par AlainL dans le forum VBA Access
    Réponses: 7
    Dernier message: 21/12/2008, 09h06
  3. [Access] dernier enregistrement selon date
    Par sebos21 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 24/05/2006, 19h31
  4. Réponses: 1
    Dernier message: 07/09/2005, 11h25
  5. Afficher un enregistrement selon un critère saisie.
    Par pegase23 dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo