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 :

Construction de requête


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut Construction de requête
    Bonjour...
    Voilà je suis en peine sur une requête..dans les lignes ci dessous, je souhaiterai garder seulement celle pour lesquelles la date est la plus grande en fonction de l'offerkey..mais je souhaite afficher les trois colonnes

    OracleKey---- OfferKey---- Date
    1---- 5---- 01/01/08
    2---- 5---- 01/02/08
    3---- 5---- 01/06/08
    4---- 6---- 01/09/08
    5---- 6---- 01/08/09
    6---- 10---- 01/08/09

    Le résultat final doit être
    OracleKey---- OfferKey---- Date
    3---- 5---- 01/06/08
    4---- 6---- 01/09/08
    6---- 10---- 01/08/09

    MErci

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT OracleKey, OfferKey, MAX(Date) AS 'Date'
    FROM votreTable
    GROUP BY OfferKey

  3. #3
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Buchs, à part dans les dérivés exotiques du SQL, les colonnes du SELECT doivent se trouver dans le GROUP BY.

    Ici, on peut avoir des trucs du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    WITH MaxTable AS (
    SELECT OfferKey, MAX(Date) AS TaDate
    FROM votreTable
    GROUP BY OfferKey
    )
    SELECT v.*
    FROM VotreTable v JOIN MaxTable
      ON MaxTable.Offerkey = v.OfferKey
    (Il y a d'autres possibilités à base de fonctions analytiques ou de sous-requêtes renvoyant OfferKey du max dans le WHERE...)

  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    En effet

  5. #5
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    Merci pour vos proposition buchs et pacmann... Mais la solution avec le With ne peut pas fonctionner...En effet ce que je souhaite c'est récupérer la Oraclekey pour lesquelles la date est maximal en fonction de l'offerKey..la jointure ON MaxTable.Offerkey = v.OfferKey va me renvoyer toutes les lignes car dans la construction de la MaxTable on revoi bien une ligne par offerkey avec le max(date) mais TOUTES les offerkey ont une date max...donc la jointure va se faire sur toutes les offerKey..le principe est bon mais il faudrait à un moment jointurer sur la clé de la table.. je cherche toujours de mon côté

  6. #6
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    Ok je viens de trouver une solution grâce à vous

    Il faut rajouter une jointure sur la date étajnt donné que maxtable renvoi le max... c'est pas très propre et je suis persuadé qu'il existe une autre solution..
    Merci beaucoup...

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

Discussions similaires

  1. Construction de requête
    Par grome dans le forum SQL
    Réponses: 3
    Dernier message: 03/06/2008, 17h33
  2. [Java] Outil de construction de requête et affichage du résultat
    Par Toudy dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 07/05/2007, 10h11
  3. Problème de construction de requête !
    Par feasil dans le forum Access
    Réponses: 5
    Dernier message: 18/04/2006, 10h36
  4. [Access] Problème de construction de requête
    Par feasil dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/04/2006, 11h59
  5. Problème de construction de requête !
    Par feasil dans le forum Access
    Réponses: 1
    Dernier message: 12/04/2006, 20h02

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