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 :

jointure, group by , having


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut jointure, group by , having
    bonjour,

    voilà j'ai deux tables :
    Table Offres : champ id_offre, champ pourcent
    Offres_Produits : champ id_produit, champ id_offre

    Données de la table Offres :
    id_offre pourcent
    150 75
    46 50
    78 79


    Données de la table Offres_Produits :
    id_produit id_offre
    200 150
    200 78
    125 46

    Attention un produit peut etre associé à plusieurs offres.

    Je souhaite recuperer les 2 offres ayant le plus grand pourcentage Mais grouper par produit (ici le resultat devrait etre id_offre 78 et 46)

    J'ai essaye avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select max(pourcent) 
    from Offres, Offres_Produits 
    where Offres.id_offre=Offres_Produits.id_offre 
    group by id_produit;
    J'ai aussi essayé avec un having mais rien ne fonctionne.
    Quelqu'un aurait il une idéeN

    MErci

  2. #2
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Bonjour il faudrait savoir quel SGBD tu utilise ca influencera pour la requete (enfin de mon côté )

    Sinon ben je propose ca :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT id_produit,id_offre,pourcent
    FROM Offres, Offres_Produits
    WHERE Offres.id_offre=Offres_Produits.id_offre
    GROUP BY id_produit,id_offre
    ORDER BY pourcent DESC
    LIMIT 2

    Ce n'est qu'une proposition je ne suis pas très fort en sql loin de la =) A voir avec meilleur que moi ^^

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    ou encore pour SQL server

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT TOP 2 id_produit,id_offre,pourcent
    FROM Offres, Offres_Produits
    WHERE Offres.id_offre=Offres_Produits.id_offre
    GROUP BY id_produit,id_offre
    ORDER BY pourcent DESC
    ou pour Oracle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT id_produit,id_offre,pourcent
    FROM Offres, Offres_Produits
    WHERE Offres.id_offre=Offres_Produits.id_offre and ROWNUM <= 2
    GROUP BY id_produit,id_offre
    ORDER BY pourcent DESC

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    avec la requete que tu m'as donné, il ne fait pas la distinction des produits

  5. #5
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Ben si, je fais un group by id_produit il distingue chaque produit non?

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    si je fais un group by id produit là c'est pris en compte. Mais il choisit la mauvaise offre associé

    et pour le sgbd c'est du mysql

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    Données de la table Offres :
    id_offre pourcent
    150 75
    46 50
    78 79


    Données de la table Offres_Produits :
    id_produit id_offre
    200 150
    200 78
    125 46

    Attention un produit peut etre associé à plusieurs offres.

    Je souhaite recuperer les 2 offres ayant le plus grand pourcentage Mais grouper par produit (ici le resultat devrait etre id_offre 78 et 46)
    Moi je dirai le resultat est 150 et 78, sauf si quelque chose m'a échapé.

    A+

  8. #8
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Une discussion Résolue il y a peut...


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

Discussions similaires

  1. regroupement GROUP BY.HAVING et critères
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 17/10/2007, 13h11
  2. comment traduire un "group by/having" dans une query
    Par cau83 dans le forum Alimentation
    Réponses: 1
    Dernier message: 05/06/2007, 10h05
  3. [FB 1.5] jointure + group by
    Par jlf dans le forum SQL
    Réponses: 1
    Dernier message: 01/02/2006, 17h58
  4. [SQL] Jointure,Group BY et ORDER BY COUNT qui marche pas
    Par Stef784ever dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/08/2005, 13h28
  5. requete avec jointure & group by
    Par de LANFRANCHI dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/07/2004, 15h31

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