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 :

Requête SQl compliquée


Sujet :

SQL Oracle

  1. #1
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut Requête SQl compliquée
    Bonjour,
    j'ai une table MATABLE(NUM,PROG,DATEDEB,DATEFIN),
    je veux extraire pour un programme donnée, combien à durée son execution pendant chaque heure, dans un format de 24 heures.

    01 = 30 min
    02 = 0
    03 = 1 heure
    04 = 10 secondes
    .
    .
    .
    .
    23 = 0

    si quelqun à un bout de fil, ça serait le bien venue.

  2. #2
    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
    Il manque quelques informations non, là c'est incompréhensible.

  3. #3
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut
    dans chaque ligne dans ma table, on a un num, un nom du programme, et date de debut et de fin de ce programme :
    exp : (1, LA001, 20/04/2010 18:05:10, 20/04/2010 18:05:50)
    (2, JA001, 20/04/2010 18:10:10, 20/04/2010 18:50:50)
    (2, JA001, 20/04/2010 18:15:10, 20/04/2010 18:25:50)
    .....

    Je veux avoir pour chaque heure du jour de 0 à 23, le nombre de fois de lancement de ce programme c comme suit pour un jour et un programme donnée: (20/04/2010 et JA001)
    Heure|Nbr
    ----------
    01 0
    02 0
    03 0
    04 0
    05 0
    .
    .
    18 2
    19 0
    .
    23 0

  4. #4
    Membre très actif Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 941
    Par défaut
    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
    SELECT
    p.heure,
    COUNT(
    DECODE(p.heure >= TO_NUMBER(m.datedeb, 'hh24'),
    DECODE(p.heure <= TO_NUMBER(m.datefin, 'hh24'), 1, 0), 0)
    )
     
    FROM
    matable m,
    (
    SELECT (numrow - 1) heure
    FROM all_objects
    WHERE numrow < 25
    ) p
     
    WHERE
    '20/04/2010' BETWEEN m.datedeb AND m.datefin
    AND m.prog = 'JA001'
     
    GROUP BY p.heure

    .

  5. #5
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut
    merci pour votre aide la solution été :
    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
     
      with 
      liste1 as 
          (select heure from
             (select lpad(to_char(rownum-1),'2','0') heure 
              from dba_objects 
              where rownum<25) hr),
      liste2 as 
         (SELECT TO_CHAR(DAT_DEB,'HH24') HEURE 
           FROM MATABLE
           WHERE FONC_EDIT = 'JA001' 
           AND TO_CHAR(DAT_DEM,'DD/MM/YYYY') = '20/04/2010')
      select liste1.heure as dat_deb, count(liste2.heure) as nbr from liste1
      left outer join liste2 on liste1.heure =liste2.heure
      group by liste1.heure
      order by liste1.heure

  6. #6
    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
    Vous pouvez économiser une sous-requête, et utiliser dual au lieu de dba_objects :
    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
    with hr as
    (
    select to_char(level-1, 'fm00') as heure
      from dual
    connect by level <= 24
    )
      select hr.heure as hr_deb,
             count(mt.fonc_edit)
        from hr
             left outer join matable mt
               on to_char(mt.dat_deb, 'HH24') = hr.heure
              and mt.dat_deb >= date '2010-04-20'
              and mt.dat_deb <  date '2010-04-21'
              and mt.fonc_edit = 'JA001'
    group by hr.heure
    order by hr.heure asc;

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

Discussions similaires

  1. [MySQL] Requête SQL compliquée
    Par Shinosha dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/06/2011, 15h42
  2. requête sql compliquée
    Par root76 dans le forum Développement
    Réponses: 2
    Dernier message: 22/07/2009, 09h28
  3. Requête SQL compliquée
    Par fips1962 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/05/2009, 18h52
  4. requête sql compliquée
    Par root76 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/08/2007, 15h53
  5. requête sql compliquée
    Par caoutchouc dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/05/2007, 16h21

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