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 06/02/2012, 14h21   #1
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
Par défaut Filtrage sur dates plus petites

Bonjour,

J'ai une requête qui me renvoi une liste Id Personne / N° de Fichier / Date comme suit :

Citation:
H03002 AAEE288E26984FDA9B9AF611D727B7FE 06/02/2012 12:00
H06001 FE0BB85FAB1A4F4CAD87B5B7F63127B5 06/02/2012 12:00
20740 C6EAF65FD51348F091D1957D4BA955E2 06/02/2012 12:00
28752 E36549E501EE48229B0AD9620F5EEC8D 06/02/2012 10:16
28752 977C22A51A5D4F19935F2C5066B060C8 06/02/2012 09:46
Pour chacun des Id Personne je peux avoir de 1 à N lignes.

Je cherche un moyen pour chacun des Id Personnes ne faire ressortir que les lignes ayant les plus petites dates quand il y en a plusieurs, mon exemple deviendrait :

Citation:
28752 977C22A51A5D4F19935F2C5066B060C8 06/02/2012 09:46
Merci à vous

Ps: je suis en 10G.
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h23   #2
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
En l'absence du code de la requête

Voir du coté de FIRST_VALUE... OVER (PARTITION...ORDER BY...)
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h26   #3
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
bien ma requête n'est pas très compliqué en soit :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 SELECT st.student_no,pg.file_guid, to_char(pg.last_update,'dd/mm/yyyy HH24:mi')
          FROM  adsindex dx,
                adspage pg,
                aemstudent st
        WHERE  dx.doc_guid= pg.doc_guid     
        AND  dx.doc_index_2 = st.student_no
        AND st.STATUS          ='N'
        AND st.client          ='P1'
        AND dx.doc_index_1     ='P1'
        AND dx.doc_index_2_id  ='A4'
        AND dx.doc_type        ='RDNWEB'
        ORDER BY st.student_no,to_char(pg.last_update,'dd/mm/yyyy HH24:mi') DESC
la voici ...
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 15h05   #4
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
j'ai donc ajouté cela :
Code :
1
2
 
to_char(last_value(pg.last_update) over(partition BY student_no ORDER BY pg.last_update range BETWEEN 2 preceding AND 2 following),'dd/mm/yyyy HH24:mi') date_debut
ce qui me donne bien la dernière date ... maintenant comment faire le filtre ?
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 15h49   #5
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 316
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 316
Points : 5 822
Points : 5 822
First en version agrégée
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/02/2012, 16h03   #6
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
honnêtement j'avoue qu'un exemple ne serait pas de refus
merci pour votre aide
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 16h06   #7
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 688
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 688
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Ça devrait ressembler à quelque chose comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  SELECT st.student_no
       , max(pg.file_guid) keep(dense_rank first ORDER BY pg.last_update ASC) AS file_guid
       , to_char(min(pg.last_update),'dd/mm/yyyy HH24:mi')                    AS last_update
    FROM adsindex dx
         INNER JOIN adspage pg
           ON pg.doc_guid = dx.doc_guid
         INNER JOIN aemstudent st
           ON st.student_no = dx.doc_index_2
   WHERE st.STATUS         = 'N'
     AND st.client         = 'P1'
     AND dx.doc_index_1    = 'P1'
     AND dx.doc_index_2_id = 'A4'
     AND dx.doc_type       = 'RDNWEB'
GROUP BY st.student_no
ORDER BY st.student_no ASC
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 16h16   #8
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
oui cela fonctionne ...j'avoue ne pas tout comprendre ... par contre si je veux l'inverse je dois inverser quoi ?
shaun_the_sheep 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 01h33.


 
 
 
 
Partenaires

Hébergement Web