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

MS SQL Server Discussion :

Probleme avec une requete


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 116
    Par défaut Probleme avec une requete
    Bonjour,

    Je travaille sur la base de donnée pubs, j'essai d'afficher le magasin qui a vendu le plus grand nombre d'exemplaire en une seule vente.
    je dois afficher stor_id,stor_name,title et qty. J'ai trouvé la solution mais en affichant juste stor_id et qty, lorsque j'ajoute les autre champs, cela me retourne resultat incorrecte. Voila ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use pubs
    select top 1 s.stor_id,sum(qty) as 'quantity' from sales s,stores st,titles t where t.title_id=s.title_id and st.stor_id=s.stor_id group by ord_num,s.stor_id order by sum(qty) desc

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonsoir,

    Evitez l'ancienne syntaxe pour vos jointures de table. JE vous invite à lire ceci également pour comprendre pourquoi on ne parle pas de champs mais de colonnes.

    Essayez ceci pour votre solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT top 1 
     s.stor_id,
     stor_name,
     title, 
     sum(qty) AS 'quantity' 
    FROM sales s
    INNER JOIN stores st
    ON  t.title_id=s.title_id 
    INNER JOIN titles t
    ON st.stor_id=s.stor_id 
    GROUP BY ord_num ,s.stor_id, store_name, title 
    ORDER BY sum(qty) DESC
    ++

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 116
    Par défaut
    Merci pour votre reponse, mais votre requette me retourne cet erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Serveur*: Msg 107, Niveau 16, État 2, Ligne 1
    Le préfixe de colonne 't' ne correspond ni au nom de table ni au nom d'alias utilisés dans la requête.

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Autant pour moi.. j'ai inversé l'ordre des jointures .. ca ne risquait pas de fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT top 1 
     s.stor_id,
     stor_name,
     title, 
     sum(qty) AS 'quantity' 
    FROM sales s
    INNER JOIN stores st
    ON st.stor_id=s.stor_id 
    INNER JOIN titles t
    ON t.title_id=s.title_id 
    GROUP BY ord_num ,s.stor_id, store_name, title 
    ORDER BY sum(qty) DESC
    ++

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 116
    Par défaut
    Normalement ça doit retourner 85 pour la quantité, mais votre requette retourne 75.
    donc ceci est equivalent à la requette que j'ai essayé en vain:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select top 1 s.stor_id,stor_name,title,sum(qty) as 'quantity' from sales s , stores st ,titles t where t.title_id=s.title_id and st.stor_id=s.stor_id group by ord_num,s.stor_id,stor_name,title order by sum(qty) desc

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Oui, j'ai simplement traduit votre requête ...

    Après avoir regardé la base pub et vos tables... le groupage avec la colonne titre_id est de trop ... vous cherchez simplement à avoir le résultat par vente et par magasin ..

    La requête suivante devrait vous mener au bon résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT top 1 
     s.stor_id,
     stor_name,
     ord_num,
     sum(qty) AS 'quantity' 
    FROM dbo.sales s
    INNER JOIN dbo.stores st
    ON st.stor_id=s.stor_id 
    GROUP BY ord_num ,s.stor_id, store_name 
    ORDER BY sum(qty) DESC
    ++

Discussions similaires

  1. Probleme avec une requete mise a jour
    Par mael94420 dans le forum ASP
    Réponses: 2
    Dernier message: 08/03/2006, 20h56
  2. Probleme avec une requete de selection
    Par vaness59199 dans le forum ASP
    Réponses: 2
    Dernier message: 03/10/2005, 22h42
  3. [weblogic 8.1][JDBC] Probleme avec une requete
    Par Sniper37 dans le forum Weblogic
    Réponses: 3
    Dernier message: 08/04/2005, 11h11
  4. probleme avec une requete full text
    Par maxxou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2005, 17h20
  5. au secour probleme avec une requete...
    Par soufiane59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/09/2003, 10h28

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