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

SQL Oracle Discussion :

Dernier événement entre plusieurs tables


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    juin 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2017
    Messages : 54
    Points : 49
    Points
    49
    Par défaut Dernier événement entre plusieurs tables
    Bonjour à tous,

    Pour commencer je tiens a préciser que je suis totalement néophyte dans le SQL

    J'ai accès à 3 tables différentes:

    • User_Identity qui contient les paramètres User_ID, User_FullName et User_Email (+ d'autres paramètres)
    • Historized_Item qui contient User_ID et Event_ID
    • Event qui contient Event_ID, Event_Type et Event_Date (+ d'autres paramètres)


    J'ai besoin de récupérer la date du dernier évènement 'Account unlocked' lié à un utilisateur.

    J'ai réalisé le code suivant mais je ne sais pas comment récupérer uniquement l' 'Event Date' la plus récente.

    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
     
    SELECT
        User_Identity.User_FullName,
        User_Identity.User_Email,
        (Event.Event_Date / 86400000) + 25569
     
    FROM
        User_Identity,
        Historized_Item,
        Event
     
    WHERE    
        User_Identity.User_FullName LIKE 'A%'
        AND User_Identity.User_ID = Historized_Item.User_ID
        AND Historized_Item.Event_ID = Event.Event_ID
        AND Event.Event_Type = 'Account unlocked'
    Merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    8 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 265
    Points : 26 716
    Points
    26 716
    Par défaut
    C'est une question qui revient très régulièrement.
    Escartefigue propose plusieurs solutions à ce problème dans son blog.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    juin 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2017
    Messages : 54
    Points : 49
    Points
    49
    Par défaut
    Merci al1_24 pou ta réponse. Je n'avais pas trouvé ce blog.

    Par contre malgré cela, je ne parviens pas à effectuer ce que je veux. Je m'y prend surement mal…

    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
    SELECT
        User_Identity.User_FullName,
        User_Identity.User_Email,
        (B8.Event_Date / 86400000) + 25569
     
    FROM
        User_Identity,
        Historized_Item
     
    INNER JOIN Event B8
        ON B8.Event_ID = Historized_Item.Event_ID
     
    WHERE    
        B8.Event_Date = (SELECT MAX(B8.Event_Date) FROM Event S8 WHERE S8.Event_ID = B8.Event_ID)
        AND B8.Event_Type = 'Account unlocked'
        AND User_Identity.User_ID = Historized_Item.User_ID
    ;

  4. #4
    Modérateur

    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    7 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata

    Informations forums :
    Inscription : septembre 2008
    Messages : 7 887
    Points : 15 735
    Points
    15 735
    Par défaut
    C'est un simple max :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      select ui.User_FullName
           , ui.User_Email
           , max(ev.Event_Date)
        from User_Identity    ui
        join Historized_Item  hi on hi.User_ID  = ui.User_ID
        join Event            ev on ev.Event_ID = hi.Event_ID
       where ui.User_FullName like 'A%'
         and ev.Event_Type       = 'Account unlocked'
    group by ui.User_FullName
           , ui.User_Email;

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    juin 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2017
    Messages : 54
    Points : 49
    Points
    49
    Par défaut
    Super merci !!

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

Discussions similaires

  1. [SQL] Derniers enregistrement sur plusieurs tables
    Par bibom dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 29/07/2006, 00h22
  2. somme entre plusieurs tables
    Par copin dans le forum Access
    Réponses: 1
    Dernier message: 05/06/2006, 14h03
  3. jointures externes entre plusieurs tables
    Par hacksi dans le forum Access
    Réponses: 22
    Dernier message: 15/05/2006, 17h26
  4. Relations entre plusieurs tables bloquent un état
    Par aujero dans le forum Access
    Réponses: 5
    Dernier message: 07/02/2006, 13h07
  5. [Débutant] requete entre plusieurs tables
    Par xufux dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/08/2005, 15h00

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