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

Langage SQL Discussion :

Min dans une requette composée


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Points : 177
    Points
    177
    Par défaut Min dans une requette composée
    Bonjour;
    J'ai la requette suivante :
    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 
     
            DISTINCT SV.USR_ID,
            USR_NOM,
            TO_CHAR(SV.DATE_LAST_VISIT,'DD-MM-YYYY HH24:MI:SS') AS TEMPS1,
            CS.SES_DATE AS TEMPS
     
        FROM
            CI_SESSION_VERIF SV, 
            CI_UTILISATEUR U,
            CI_SESSION CS
        WHERE 
            SV.USR_ID = U.USR_ID
        AND
            SV.USR_ID >0
        AND 
            TO_CHAR(DATE_LAST_VISIT + 1/24, 'YYYY-MM-DD HH24:MI:SS') > TO_CHAR(sysdate , 'YYYY-MM-DD HH24:MI:SS')
        AND
            CS.ID_USE   = SV.USR_ID
    qui me retourne le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    USR_ID   USR_NOM   TEMPS1           TEMPS
    -------------------------------------------
    31         Arneau        2009-11-29      20091129105300
    31         Arneau        2009-11-29      20091129102300
    31         Arneau        2009-11-29      20091129091500
    33         Brice           2009-11-20      20091129091500
    33         Brice           2009-11-20      20091128091500
    Maintenant moi je veux obtenir le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    USR_ID   USR_NOM   TEMPS1           TEMPS
    -------------------------------------------
    31         Arneau        2009-11-29      20091129091500
    33         Brice           2009-11-20      20091128091500
    sa veut dire prendre la valeur minimal de TEMPS de chaque groupe d'enregistrement, merci pour votre aide

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 493
    Points
    28 493
    Par défaut
    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
    16
    SELECT  sv.usr_id
        ,   usr_nom
        ,   TO_CHAR(sv.date_last_visit, 'DD-MM-YYYY HH24:MI:SS') AS temps1
        ,   MIN(cs.ses_date AS temps)
    FROM    ci_session_verif sv
        INNER JOIN 
            ci_utilisateur u
            ON  sv.usr_id = u.usr_id
        INNER JOIN 
            ci_session cs
            ON  cs.id_use = sv.usr_id
    WHERE   sv.usr_id > 0
        AND TO_CHAR(date_last_visit + 1/24, 'YYYY-MM-DD HH24:MI:SS') > TO_CHAR(SYSDATE , 'YYYY-MM-DD HH24:MI:SS')
    GROUP BY sv.usr_id
        ,   usr_nom       
        ,   TO_CHAR(sv.date_last_visit, 'DD-MM-YYYY HH24:MI:SS') AS temps1
    Pour mieux comprendre les regroupements :
    Groupage, ensembles et sous ensembles
    par Frédéric Brouard
    Le GROUP BY et opérations ensemblistes.

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Et il faut comparer les dates, pas besoin de les transformer en chaîne de caractères, c'est même dangereux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND (date_last_visit + 1/24) > SYSDATE

  4. #4
    Membre habitué Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Points : 177
    Points
    177
    Par défaut
    Merci pour votre reponse

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

Discussions similaires

  1. specifier plusieur adresse ip dans une requette iptables
    Par kerkennah dans le forum Réseau
    Réponses: 9
    Dernier message: 15/05/2007, 11h45
  2. Un filtre dans une requette SQL
    Par laklak dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/01/2007, 11h21
  3. comment passer du code html dans une requette sql?
    Par vinceH31 dans le forum Requêtes
    Réponses: 5
    Dernier message: 23/11/2006, 19h10
  4. variable dans une requette?
    Par userJDBC dans le forum JDBC
    Réponses: 2
    Dernier message: 09/10/2006, 16h49
  5. [VB6]ne pas faire la différence Maj/min dans une chaine
    Par dbozec dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 14/04/2006, 13h32

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