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 :

Creation de table et recuperation de Max et de Min


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 29
    Points : 28
    Points
    28
    Par défaut Creation de table et recuperation de Max et de Min
    Bonjour,

    J'ai une premiere table avec des donnees en minutes:

    DateTrade Value1 Value2

    01/01/2010 09:00:00 2 34

    01/01/2010 09:01:00 10 45

    01/01/2010 09:02:00 8 21

    01/01/2010 09:03:00 28 32

    01/01/2010 09:04:00 36 31

    01/01/2010 09:05:00 56 7

    01/01/2010 09:06:00 14 1



    J'ai besoin de creer une seconde table a partir de la premiere qui me restitue les donnees toute les 2 minutes: J'ai besoin de

    - ne selectionner qu'une donnee de DateTrade sur 2:

    - qui en meme temps renvoie le max et les min de de Value1 et Value2



    Avec la table a creer ca devrait etre plus clair:

    DateTrade Max Value1 Min Value2

    01/01/2010 09:01:00 Max (10;2) Min (45;34)

    01/01/2010 09:03:00 Max (28;8) Min(32;21)

    01/01/2010 09:05:00 Max (56;36) Min(7;31)



    La je suis vraiment perdu, si quelqu'un avait une idee

    Merci

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    En admettant que les dates de votre table soient toujours décalées d'une minute une solution pourrait être celle-ci :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    DECLARE @t TABLE
    (
     DateTrade DATETIME,
     Value1 INT,
     Value2 INT
    );
     
    INSERT INTO @t VALUES ('01/01/2010 09:00:00', 2, 34);
    INSERT INTO @t VALUES ('01/01/2010 09:01:00', 10, 45);
    INSERT INTO @t VALUES ('01/01/2010 09:02:00', 8, 21);
    INSERT INTO @t VALUES ('01/01/2010 09:03:00', 28, 32);
    INSERT INTO @t VALUES ('01/01/2010 09:04:00', 36, 31);
    INSERT INTO @t VALUES ('01/01/2010 09:05:00', 56, 7);
    INSERT INTO @t VALUES ('01/01/2010 09:06:00', 14, 1);
     
    WITH CTE
    AS
    (
      SELECT 
       ROW_NUMBER() OVER(ORDER BY DateTrade) AS num,
       *
      FROM @t
    )
    SELECT 
      T2.DateTrade,
      CASE T2.num % 2 WHEN 0 THEN CASE 
              WHEN T.Value1 > T2.Value1 THEN T.Value1
              WHEN T.Value1 < T2.Value1 THEN T2.Value1
              ELSE T.Value1
             END
          ELSE NULL
      END AS Value1,
      CASE T2.num % 2 WHEN 0 THEN CASE 
              WHEN T.Value2 > T2.Value2 THEN T2.Value2
              WHEN T.Value2 < T2.Value2 THEN T.Value2
              ELSE T.Value2
             END
          ELSE NULL
      END AS Value2
    FROM CTE AS T 
    INNER JOIN CTE AS T2
    ON T.num = T2.num - 1
    WHERE T2.num % 2 = 0;
    ++

Discussions similaires

  1. Recuperer le max ou le min le plus proche.
    Par PadawanDuDelphi dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/03/2007, 18h08
  2. Recuperer les max des dates à partir d'une autre table
    Par inabil dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/11/2006, 15h19
  3. [MySQL] [débutant] probleme pour recuperer ID max et ID min
    Par fabien14 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 25/09/2006, 10h48
  4. Creation de table multi base
    Par baboune dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/02/2004, 09h23
  5. Creation de table, caractère non reconnu
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/02/2004, 13h28

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