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 :

Galère pour une requête SQL


Sujet :

Langage SQL

  1. #21
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    On va reprendre pas a pas, et peux être que quelqu'un avec une vision extérieure pourra m'éclairer...
    Ce que je ne comprend pas c'est que moi en faisant des tests ça marche.. (ou alors j'ai pas compris quelque chose)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT P.id_produit , MIN(P.Prix)
    // sélectionne id_produit et le prix min
     
    FROM Prix P, Produit B
    // sélectionne les deux tables
     
    WHERE B.id = P.id_produit AND B.id_rubrique = 1
    // fait la jointure entre les deux tables et la condition sur id_rubrique
     
    GROUP BY P.id_produit
    // regroupe les résultats par id_produit : permet la fonction min
     
    ORDER BY P.Prix ASC
    // classe selon le prix
    ~ Lola ~

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Points : 95
    Points
    95
    Par défaut
    Bizarre... moi quand j'exécute ta requête, il ne veut pas la prendre car il me dit : "La colonne "Prix.prix" n'est pas valide dans la clause ORDER BY parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY."

    C'est pour ça que j'ai mis P.Prix dans le GROUP BY et c'est aussi peut-être pour ça qu'il m'affiche 2x un même produit ???
    Vive Visual Studio.net !!!

  3. #23
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Oui quand tu met Prix.Prix dans le group by c'est normal qu'il y ait des doublons (ou plus).
    * Et si tu enlèves le ORDER, est ce que ça marche ?

    * Sinon essaye (mais la je ne suis vraiment pas sure):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT P.id_produit , MIN(P.Prix) As Min
    FROM Prix P, Produit B
    WHERE B.id = P.id_produit AND B.id_rubrique = 1
    GROUP BY P.id_produit
    ORDER BY Min ASC
    ~ Lola ~

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Points : 95
    Points
    95
    Par défaut
    Affirme, quand j'enlève le ORDER BY ca a l'air bon... mais ce n'est pas dans l'ordre

    Et le ORDER BY Min ASC ne marche pas malheureusement. Là on a un nouveau problème, non ???
    Vive Visual Studio.net !!!

  5. #25
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT id, min FROM
    (
    SELECT P.id_produit AS id , MIN(P.Prix) AS Min
    FROM Prix P, Produit B
    WHERE B.id = P.id_produit AND B.id_rubrique = 1
    GROUP BY P.id_produit
    )
    ORDER BY min ASC
    Et là ?

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Points : 95
    Points
    95
    Par défaut
    "Syntaxe incorrecte vers le mot clé 'ORDER'"
    Vive Visual Studio.net !!!

  7. #27
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT id, min FROM
    (
    SELECT P.id_produit AS id , MIN(P.Prix) AS Min
    FROM Prix P, Produit B
    WHERE B.id = P.id_produit AND B.id_rubrique = 1
    GROUP BY P.id_produit
    ) tmp
    ORDER BY min ASC
    Et là ?

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Points : 95
    Points
    95
    Par défaut
    Yeahh ! Merci lola t'es un as ! J'ai un peu simplifié pour ne pas avoir le prix minimum en sortie, et il n'a pas bronché... donc ça marche !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT id FROM
    (
    SELECT Prix.id_produit AS id , MIN(Prix.Prix) AS prix_minimum
    FROM Prix, Produits
    WHERE Produits.id = Prix.id_produit AND Produits.id_rubrique = 1
    GROUP BY Prix.id_produit
    ) tmp
    ORDER BY prix_minimum ASC
    Merci à tous !
    Vive Visual Studio.net !!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Aidez moi pour une requête SQL server
    Par pop10 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/06/2007, 22h15
  2. problème de syntaxe delphi pour une requête sql
    Par socooooool dans le forum Bases de données
    Réponses: 12
    Dernier message: 07/07/2006, 16h53
  3. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  4. Réponses: 3
    Dernier message: 18/06/2005, 00h31
  5. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56

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