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 :

Filtrage sur dates plus petites


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    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 619
    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 :

    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 :

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

    Ps: je suis en 10G.

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    En l'absence du code de la requête

    Voir du coté de FIRST_VALUE... OVER (PARTITION...ORDER BY...)

  3. #3
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    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 619
    Par défaut
    bien ma requête n'est pas très compliqué en soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ...

  4. #4
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    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 619
    Par défaut
    j'ai donc ajouté cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  5. #5
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Par défaut
    First en version agrégée

  6. #6
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    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 619
    Par défaut
    honnêtement j'avoue qu'un exemple ne serait pas de refus
    merci pour votre aide

  7. #7
    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
    Ça devrait ressembler à quelque chose comme ça :
    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
      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

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

Discussions similaires

  1. [2.x] requete queryBulder sur date plus recente
    Par chlock62 dans le forum Symfony
    Réponses: 3
    Dernier message: 22/01/2015, 17h28
  2. [AC-2007] Filtrage sur date
    Par Looping972 dans le forum IHM
    Réponses: 12
    Dernier message: 09/11/2009, 11h15
  3. faire un filtrage par date sur base de donnee "delphi
    Par medsoft dans le forum Bases de données
    Réponses: 7
    Dernier message: 04/02/2006, 17h03
  4. [XSL] gestion de dates, date plus petite qu'une autre.
    Par Caille Rotie dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/01/2006, 11h01
  5. [TP] Tirer 10 dates et afficher la plus petite
    Par moustaphes dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 16/08/2005, 09h54

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