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

Oracle Discussion :

Remplissage des temps vides


Sujet :

Oracle

  1. #1
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut Remplissage des temps vides
    Bonjour la liste,

    je voudrais remplir une liste
    de series de temps par minute d'une table remplie journalierement



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE table1
    (
    TICK VARCHAR2(22 BYTE) NOT NULL,
    My_TIME TIMESTAMP(3) NOT NULL,
    PRICE NUMBER(20,8),
    VOLUME NUMBER(20,8),
     
    )
    My_time tick price volume
    26/02/2008 14:24 MAC DODOL 50.16 4680926.8
    26/02/2008 14:25 MAC DODOL 50.17 4685326.333
    26/02/2008 14:26 MAC DODOL 50.17 4688907.389
    26/02/2008 14:27 MAC DODOL 50.19 4697578.133
    26/02/2008 14:28 MAC DODOL 50.23 4703991.636
    26/02/2008 14:29 MAC DODOL 50.25 4707964.25
    26/02/2008 14:30 MAC DODOL 50.24 4712001.167
    26/02/2008 14:31 MAC DODOL 50.25 4719389.769
    26/02/2008 14:32 MAC DODOL 50.25 4727232.033
    26/02/2008 14:33 MAC DODOL 50.3 4744975.208
    26/02/2008 14:34 MAC DODOL 50.35 4768389.946
    26/02/2008 14:35 MAC DODOL 50.33 4780110.957
    26/02/2008 14:36 MAC DODOL 50.28 4787568.143
    26/02/2008 14:37 MAC DODOL 50.28 4795504.061
    26/02/2008 14:38 MAC DODOL 50.28 4803979.947
    26/02/2008 14:39 MAC DODOL 50.3 4818803.025
    26/02/2008 14:40 MAC DODOL 50.35 4861607.508
    26/02/2008 14:41 MAC DODOL 50.35 4894889.552
    26/02/2008 14:42 MAC DODOL 50.35 4909506.875
    26/02/2008 14:43 MAC DODOL 50.36 4917993
    Il manque les données de 14:43 a 20:00:00

    comment pourrais je faire


    je peux creer la liste manquante comme ca



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select all_dates.d missing
    from (
    select to_date('20080227 20:30:00','yyyymmdd HH24:MI:SS')-1+rownum d from dual
    connect by level<=15) all_dates, table1 x
    where all_Dates.d = x.my_time(+)
    and x.my_time is null
    /
    Et je dois inserer la valeur price= 50.36 ,volume=4917993
    26/02/2008 14:43 MAC DODOL 50.36 4917993

    et ceci jusqu'a 20:00:00
    comment le faire

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Points : 436
    Points
    436
    Par défaut
    Si j'ai bien compris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into table1
    select timestamp'2008-2-26 14:43:00' + (rownum - 1) / (60 * 24) my_time, 'MAC DODOL' tick, 50,36 price, 4917993 volume
    from dual
    connect by rownum < 319

  3. #3
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut Merci
    ca fonctionne

    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
    declare
     v_max_server_time date;
    v_ticker varchar2(60);
     v_price number(20,8);
     v_volume pls_integer;
     v_count_min pls_integer;
    v_max_final date := to_date('26022008 15:00:00','DDMMYYYY HH24:Mi:SS');
    	begin
    		v_ticker :='MAC DODOL';
                       select max(my_time) into v_max_server_time from table1 where tick=v_ticker;
                      select volume,price into v_volume,v_price from table1
                    where  my_time=(select max(my_time) from table1 where tick=v_ticker);
                          select datediff('mi',v_max_server_time,v_max_final) into v_count_min from dual;
          for x in ( 
                          select d,v_ticker,v_volume,v_price
                                  from (select v_max_server_time + rownum/24/60 d,v_volume,v_price
                          from dual
                                  connect BY rownum <= v_count_min) all_dates, table1 x
                                   where all_dates.d=x.my_time(+)) 
          loop
                          dbms_output.put_line(x.d||','||x.v_ticker||','||x.v_volume||','||x.v_price);
          end loop;
    	end;
    /

    merci bcp

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

Discussions similaires

  1. [XL-2007] Remplissage occasionnel des cellules vides
    Par Phicome dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/12/2009, 17h34
  2. Remplissage des temps vides
    Par fatsora dans le forum Oracle
    Réponses: 0
    Dernier message: 18/03/2008, 12h36
  3. Supprimé des éléments vide d'un tableau
    Par shinux2004 dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2005, 20h40
  4. Intercepter des objets "vides".
    Par CRUSOE13 dans le forum Access
    Réponses: 9
    Dernier message: 27/06/2005, 01h08
  5. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 09h42

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