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

MS SQL Server Discussion :

Requête d'un événement le plus récent par type


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 45
    Par défaut Requête d'un événement le plus récent par type
    Bonsoir à tous

    Je viens vers vous car j'ai besoin d'une requete pour recuperer le dernier evenement de chaque modules reseau.

    Ci-après le debut de requete que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select
    timestamp AS 'Date'
    ,CASE eventtype When '16' Then 'OK' When '17' Then 'PAS OK' END AS 'Statut'
    ,hostname AS 'Nom module'
    from eventlog 
    where eventtype = '16' OR eventtype = '17'
    order by timestamp desc
    Soit un résultat de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    2012-01-01 19:16:42.017	OK	Module 1
    2012-01-01 19:16:37.487	PAS OK	Module 3
    2012-01-01 19:16:35.533	PAS OK	Module 1
    2012-01-01 18:55:10.793	OK	Module 1
    2012-01-01 18:55:06.523	PAS OK	Module 1
    2012-01-01 15:42:32.723	OK	Module 5
    2012-01-01 15:42:31.447	OK	Module 1
    2012-01-01 15:42:26.907	PAS OK	Module 2
    Ce que je souhaite c'est d'avoir le de dernier evenement de chaque module (le plus recent par rapport à la date) et d'affichier que les modules "PAS OK"

    Soit par rapport à l'exemple ci dessus je souhaite le résultat suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    2012-01-01 19:16:37.487	PAS OK	Module 3
    2012-01-01 15:42:26.907	PAS OK	Module 2
    Merci d'avance pour vos propositions

    Bonne soirée !!!

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2012
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 145
    Par défaut
    Bonjour,
    vous pouvez sans doute essayer ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    with t (monChampDate, module) as
          (SELECT
          monChampDate
          ,hostname
          FROM eventlog 
          WHERE eventtype= '17')
    select module, max(maDate)
    from t
    group by module
    order by module
    Petit conseil toutefois: évitez de nommer vos colonnes avec des noms réservés (timestamp) et de mettre des espaces dans vos noms de champ (Nom module)

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Si vous êtes au moins en SQL-Server 2005 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    With SR (timestamp, EventType, HostName, rn) as
    (
    select timestamp, EventType, HostName
         , row_number() over(partition by HostName order by timestamp desc)
      from eventlog
    )
      select timestamp AS 'Date'
           , 'PAS OK'  AS Statut
           , HostName  AS 'Nom module'
        from SR
       where rn = 1
         and EventType = '17'
    order by 1 desc;

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 45
    Par défaut
    Merci pour vos réponses , et effectivement par la commande row number c'est pas mal

    Je vais adapter ca au mieux pour mon application

    Bonne soirée et merci encore !!!

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

Discussions similaires

  1. [Toutes versions] [FAQ] : retrouver les enregistrements les plus récents par catégorie
    Par f-leb dans le forum Contribuez
    Réponses: 1
    Dernier message: 16/08/2017, 03h01
  2. Requête SQL- ressortir le plus récent enregistrement
    Par shirya dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/05/2008, 21h38
  3. Réponses: 6
    Dernier message: 04/11/2007, 22h15
  4. Affichage date plus récente dans requête champ expression
    Par sl1980 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 17/08/2007, 09h47
  5. Réponses: 17
    Dernier message: 08/07/2005, 18h53

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