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

SQL Oracle Discussion :

Petite aide SQL


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Petite aide SQL
    Bonjour,
    J’ai ma table SERVICE_STATUS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    create table SERVICE_STATUS
    (
       MLSS_SERV_INST_ID    VARCHAR2(200 BYTE),
       MLSS_STATUS_CODE     VARCHAR2(100),
       MLSS_CREA_DATE       TIMESTAMP (6)
    );
    Exemple de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Monitor1312280355583	0	02/08/11 12:19:15,736000000
    Monitor1312280355583	1	02/08/11 12:19:16,885000000
    Monitor1312280355583	2	02/08/11 12:19:19,974000000
    Monitor1312280355583	Finished  	02/08/11 12:19:25,001000000
    0 => initial status pour ID Monitor1312280355583
    Finished => la fin des données pour l’ID Monitor1312280355583.

    Je souhaite faire une view qui me donne la différence entre les temps :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Monitor1312280355583	0	02/08/11 12:19:15,736000000
    Monitor1312280355583	1	02/08/11 12:19:16,885000000 - (MLSS_CREA_DATE du status0)
    Monitor1312280355583	2	02/08/11 12:19:19,974000000(MLSS_CREA_DATE du status1)
    Quelqu’un peut me donner un petit coup de main ?
    Je peux TOUT modifier dans mes tables.
    Ma DB est ORACLE

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Sur Oracle vous pouvez utiliser la fonction analytique LAG :
    http://www.oracle-base.com/articles/...cFunctions.php

    Elle permet de retrouver une valeur de la ligne précédente.

    Essayez et revenez si vous n'y arrivez pas (il y aura peut-être un problème avec le status "finished")

    edit:
    pour la clause over(), utilisez seulement un order by si vous ne faites vos testes que sur un MLSS_SERV_INST_ID.

    Si vous souhaitez faire cette opération sur toute votre table SERVICE_STATUS, ou sur un ensemble, il faudra alors indiquer une partition sur MLSS_SERV_INST_ID :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    over(partition by MLSS_SERV_INST_ID order by MLSS_STATUS_CODE)

  3. #3
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select AA.*,BB.*,AA.mlss_crea_date -BB.mlss_crea_date Difference  from
    (select rownum no_bb ,t.* from service_status t)BB ,
    (select rownum no_aa ,t.* from service_status t)AA
     
     where no_aa>1
     and no_bb=no_aa-1
    à condition que le champ mlss_crea_date soit de type date
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

Discussions similaires

  1. petit aide pour fiche produit SQL
    Par neops dans le forum Langage SQL
    Réponses: 1
    Dernier message: 28/03/2011, 12h56
  2. Besoin d'aide pour optimiser une petite query sql
    Par AsmCode dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/01/2009, 14h52
  3. aide une petite requete sql
    Par octal2007 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/08/2008, 23h20
  4. [SQL] Petit aide pour création de table
    Par akrogames dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/01/2008, 14h09
  5. [SQL Server] Une petite aide sur une requete
    Par irenee dans le forum Langage SQL
    Réponses: 9
    Dernier message: 24/04/2006, 16h08

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