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

Requêtes et SQL. Discussion :

Requête sur une table d'historiques


Sujet :

Requêtes et SQL.

  1. #1
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut Requête sur une table d'historiques
    Bonjour,

    J'ai trois tables :

    DOSSIERS
    - NumDos

    TRANSMISSIONS
    - NumDos
    - DateTrans
    - IdDest

    DESTINATAIRES
    - IdDest
    - NomDest

    La table TRANSMISSIONS contient l'historique des transmissions des dossiers à des destinataires.
    J'ai par exemple :

    NumDos DateTrans IdDest
    1 15/02/2013 4
    1 25/03/2013 3
    1 14/05/2013 8
    2 18/01/2013 3
    3 03/02/2013 4
    3 15/01/2013 5

    J'ai besoin de récupérer la dernière date de transmission pour déterminer le nom du destinataire en cours.

    NumDos DateTrans IdDest NomDest
    1 14/05/2013 8 Dest8
    2 18/01/2013 3 Dest3
    3 03/02/2013 4 Dest4

    Quelqu'un peut m'aider, svp ?

    Merci.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Par définition, le dernier et celui pour lequel... il n'en existe pas de suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT *
    FROM TRANSMISSION T1
    WHERE NOT EXISTS(
        SELECT 1
        FROM TRANSMISSION T2
        WHERE T2.NumDos = T1.NumDos
        AND T2.DateTrans > T1.DateTrans
    )

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Super, Merci.

    Sauf que dans ma table des transmissions, j'ai également le champ HeureTrans, car un dossier peu être transmis plusieurs fois pour une même date.

    Il faudrait ajouter quoi comme condition pour avoir la dernière transmission ?

    Merci.

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT *
    FROM TRANSMISSION T1
    WHERE NOT EXISTS(
        SELECT 1
        FROM TRANSMISSION T2
        WHERE T2.NumDos = T1.NumDos
        AND (
             T2.DateTrans > T1.DateTrans
             OR
             (T2.DateTrans = T1.DateTrans AND T2.HeureTrans > T1.HeureTrans)
        )
    )
    Mais... pourquoi avoir mis la date et l'heure dans deux colonnes différentes ?

  5. #5
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Un super grand merci, ça fonctionne à merveille.

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

Discussions similaires

  1. Récupération du résultat d'une requête sur une table liée
    Par champijulie dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/06/2007, 13h26
  2. Effectuer une requête sur une table.
    Par Premium dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/05/2007, 17h27
  3. Recupérer le résultat d'une requête sur une table Firebird
    Par defluc dans le forum Bases de données
    Réponses: 7
    Dernier message: 20/04/2007, 19h30
  4. Réponses: 5
    Dernier message: 08/01/2007, 22h03
  5. requéte sur une table
    Par iutcien dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/06/2006, 16h42

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