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

Développement SQL Server Discussion :

[2005]Trouver un intervalle à partir des timestamp


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut [2005]Trouver un intervalle à partir des timestamp
    Bonjour,

    Je suis à la recherche d'une procédure qui permet de trouver l'intervalle (date de debut et une date de fin) à partir d'une table d'enregistrements avec un timestamp.

    J'ai une table A et je veux alimenter la table B.

    Table A:
    Table de supervision
    ----------- --------
    event nvarchar(10)
    detection TIMESTAMP

    Table B:
    Table d'historique
    ----------- --------
    event nvarchar(10)
    debut_detection DATETIME
    fin_detection DATETIME

    Voici un extrait de la table A
    SQL> SELECT * FROM A;
    Event_A 01/01/2009 00:00:00
    Event_A 02/01/2009 00:00:00
    Event_A 03/01/2009 00:00:00
    Event_B 04/01/2009 00:00:00
    Event_B 05/01/2009 00:00:00
    Event_A 06/01/2009 00:00:00
    Event_A 07/01/2009 00:00:00

    La table B doit contenir les information telque

    SQL> SELECT * FROM B;
    Event_A 01/01/2009 00:00:00 03/01/2009 00:00:00
    Event_B 04/01/2009 00:00:00 05/01/2009 00:00:00
    Event_A 06/01/2009 00:00:00 07/01/2009 00:00:00

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Essayez ainsi :
    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
    WITH A (Col1, Col2) AS
    (
      SELECT 'Event_A', CAST('01/01/2009' AS SMALLDATETIME) UNION ALL
      SELECT 'Event_A', CAST('02/01/2009' AS SMALLDATETIME) UNION ALL
      SELECT 'Event_A', CAST('03/01/2009' AS SMALLDATETIME) UNION ALL
      SELECT 'Event_B', CAST('04/01/2009' AS SMALLDATETIME) UNION ALL
      SELECT 'Event_B', CAST('05/01/2009' AS SMALLDATETIME) UNION ALL
      SELECT 'Event_A', CAST('06/01/2009' AS SMALLDATETIME) UNION ALL
      SELECT 'Event_A', CAST('07/01/2009' AS SMALLDATETIME)
    ), A_Id (Col1, Col2, G_Id) AS
    (
      SELECT Col1, Col2,
             ROW_NUMBER() OVER(                  ORDER BY Col2 ASC) -
             ROW_NUMBER() OVER(PARTITION BY Col1 ORDER BY Col2 ASC)
        FROM A
    )
      SELECT Col1, MIN(Col2) AS Date_Min, MAX(Col2) AS Date_Max
        FROM A_Id
    GROUP BY G_Id, Col1
    ORDER BY MIN(Col2) ASC;
     
    Col1    Date_Min                Date_Max
    ------- ----------------------- -----------------------
    Event_A 01/01/2009 00:00:00     03/01/2009 00:00:00
    Event_B 04/01/2009 00:00:00     05/01/2009 00:00:00
    Event_A 06/01/2009 00:00:00     07/01/2009 00:00:00
    Je vous invite à lire ce sujet si vous voulez comprendre la solution :
    http://beyondrelational.com/blogs/tc...hroz-alam.aspx

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci pour cette réponse qui répond à mon problème.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/02/2013, 15h25
  2. [SQL Server 2005]Requête et bcp avec des timestamp
    Par tinwul dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/12/2010, 17h57
  3. Trouver une ou des cellules a partir des coordonnées
    Par Anduriel dans le forum VB.NET
    Réponses: 0
    Dernier message: 19/02/2010, 23h21
  4. trouver un nom à partir des 3 premières lettres du prénom
    Par peofofo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/08/2008, 15h17
  5. Réponses: 4
    Dernier message: 14/10/2003, 09h58

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