Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 09h43   #1
Membre à l'essai
 
Inscription : septembre 2009
Messages : 75
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 75
Points : 22
Points : 22
Par défaut Aide requête select

Bonjour,

j'ai une table de la forme


ID CODE_JOB DATE_DEBUT DATE_FIN

Du fait d'un problème applicatif qui n'est pas de mon ressort, je peux avoir pour un job donné les informations suivantes dans la table

1 2 15/12/2010 16:00 16/12/2010 18:00
2 2 18/12/2011 16:00
3 2 19/12/2011 17:00
4 2 25/12/2011 14:00 25/12/2011 20:00
5 2 26/12/2011 15:00
6 2 27/12/2011 15:00 27/12/2011 18:00

Ce qui pose problème sont les lignes 2, 3 et 5 car il ne peut y avoir un autre job sans que le précédent soit terminé.

Le résultat que j'aimerais obtenir au final est donc
2 15/12/2010 16:00 16/12/2010 18:00
2 18/12/2011 16:00 25/12/2011 20:00
2 26/12/2011 15:00 27/12/2011 18:00

Si quelqu'un a une idée.

Merci
sfoggy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 09h55   #2
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 926
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 926
Points : 4 547
Points : 4 547
Code :
1
2
3
4
5
6
7
8
9
10
11
12
SELECT code_job, min(date_debut) deb, fin FROM (
  SELECT code_job, date_debut, date_fin, last_value(date_fin IGNORE nulls) over (partition BY code_job ORDER BY date_debut DESC) fin FROM t
) 
GROUP BY code_job,fin 
ORDER BY 1,2;
 
  CODE_JOB DEB       FIN      
---------- --------- ---------
         2 15-DEZ-10 16-DEZ-10
         2 18-DEZ-11 25-DEZ-11
         2 26-DEZ-11 27-DEZ-11
         3 11-NOV-11 22-DEZ-22
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 10h56   #3
Membre à l'essai
 
Inscription : septembre 2009
Messages : 75
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 75
Points : 22
Points : 22
Merci
sfoggy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h12.


 
 
 
 
Partenaires

Hébergement Web