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 :

[8i]Select particulier GROUP BY/MAX


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Par défaut [8i]Select particulier GROUP BY/MAX
    Bonjour,
    voila pas mal de temps que je butte sur une requête qui me parait pourtant relativement simple...
    J'ai 3 tables : OBJET, LIVRAISON, et celle qui fait la jointure entre les 2 OBJET_LIVRAISON.

    Je voudrais récupérer, pour tous les objets de OBJET, la dernière livraison correspondante(par rapport au champ "DATE" de la livraison).
    Ce qui répondrait à ma requete, et qui ne marche bien entendu pas, serait quelque chose dans ce gout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select OBJET.ID_OBJET, LIVRAISON.ID_LIVRAISON
    from OBJET, LIVRAISON, OBJET_LIVRAISON
    where OBJET.ID_OBJET = OBJET_LIVRAISON.ID_OBJET
    and LIVRAISON.id_livraison = OBJET_LIVRAISON.id_livraison
    group by OBJET.ID_OBJET, LIVRAISON.ID_LIVRAISON
    HAVING MAX("DATE") = LIVRAISON."DATE"
    Voila, la réponse doit être évidente mais je ne la vois pas...

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT OBJET.ID_OBJET, LIVRAISON.ID_LIVRAISON,MAX(LIVRAISON."DATE")
    FROM OBJET, LIVRAISON, OBJET_LIVRAISON
    WHERE OBJET.ID_OBJET = OBJET_LIVRAISON.ID_OBJET
    AND LIVRAISON.id_livraison = OBJET_LIVRAISON.id_livraison
    GROUP BY OBJET.ID_OBJET, LIVRAISON.ID_LIVRAISON

  3. #3
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Par défaut
    Merci de ta réponse, mais c'est pas encore tout à fait ca. Le problème c'est que je n'ai pas LA dernière livraison avec cette requete.
    En fait ce que je peux avoir avec ta requete est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ID_OBJET     ID_LIVRAISON      MAX(DATE)
    12                      1                20/10/2006 15:31:39
    12                      2                13/11/2006 17:45:47
    Or je voudrais seulement avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ID_OBJET     ID_LIVRAISON      MAX(DATE)
    12                      2                13/11/2006 17:45:47
    Car la derniere livraison pour l'objet '12' est la 2eme, ce que l'on sait grace à la date(a la limite j'ai pas besoin de récupérer la date apres..)
    Enfin je pense il doit pas falloir changer grand chose mais décidément...

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    t'as le droit de réfléchir aussi hein

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT OBJET.ID_OBJET, MAX(LIVRAISON.ID_LIVRAISON),MAX(LIVRAISON."DATE")
    FROM OBJET, LIVRAISON, OBJET_LIVRAISON
    WHERE OBJET.ID_OBJET = OBJET_LIVRAISON.ID_OBJET
    AND LIVRAISON.id_livraison = OBJET_LIVRAISON.id_livraison
    GROUP BY OBJET.ID_OBJET

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944

  6. #6
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Par défaut
    Oui je sais bien, mais si j'ai posté c'est parce que je ne trouve pas de solution... je cherche depuis hier, mais je dois aborder le problème par le mauvais coté.
    Bon tu vas croire que je le fais expres, mais ce n'est toujours pas bon..

    J'ai pensé à cette méthode, mais c'est pour cela que j'ai précisé dans mon 1er post que je devais utiliser la date de livraison pour savoir quelle est la dernière livraison, au cas où il y ait une insertion de livraison retardé pour je ne sais quelle raison. Le champ date est plus sur

    Donc c'est pour ca je ne vois pas comment facilement récupérer l'id de la livraison correspondant au max de la date... En tout cas merci de ton aide.

  7. #7
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    donne nous les scripts de création des tables et des lignes exemples pour qu'on puisse essayer STP.

    Laurent pas de fonction analytique avant la 9i

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par kangaxx Voir le message
    Bon tu vas croire que je le fais expres, mais ce n'est toujours pas bon..
    voila qui m'aide énormément pour savoir ce qui ne va pas

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

Discussions similaires

  1. Select sum(Poids) sur max(date) group by adr
    Par olibara dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/04/2009, 18h12
  2. Selection de la valeur max et d'un nom associé
    Par djefff75 dans le forum Access
    Réponses: 7
    Dernier message: 24/02/2006, 11h21
  3. selection avec group by mais ne garder que ...
    Par Larson dans le forum Langage SQL
    Réponses: 13
    Dernier message: 22/06/2005, 17h23
  4. Select particulier .
    Par hamed dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/11/2003, 15h45
  5. Selection de Groupes ki ne sont pas sous groupes...
    Par superdada dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/07/2003, 14h42

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