Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1672 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  existe-t-il une requete pour ce problème SVP ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

existe-t-il une requete pour ce problème SVP ??

n°1335807
lepisme
Posté le 30-03-2006 à 19:51:22  profilanswer
 

Hello
Je ne parviens pas à trouver une requete capable de résoudre la question suivante :(
En existe-t-il une?
Si oui merci de proposer vos solutions..
 
-- comment afficher le titre le plus vendu dans CHAQUE magasin et le nom du magasin? --
 
 
voici ci-dessous le contenu des 3 tables impliquées  
ainsi que le diagramme de la base de donnée  
(il s'agit de la base de donnée PUBS, fournie comme exemple dans le SGBD SQL Server 7 de microsoft)
 
http://img489.imageshack.us/img489/9083/basepubs9tl.jpg
 
http://img88.imageshack.us/img88/1126/tabletitles3me.jpg
 
http://img232.imageshack.us/img232/9584/tablesales3hm.jpg
 
http://img88.imageshack.us/img88/934/tablestores8kl.jpg
 
 
Et afin de lever toutes ambiguité dans l'énoncé du problème:
voici en rouge les lignes qui nous intéressent dans le résultat:

 
http://img236.imageshack.us/img236/9393/rsultat4zo.gif
 
 
 
d'avance merci


Message édité par lepisme le 30-03-2006 à 20:17:58
mood
Publicité
Posté le 30-03-2006 à 19:51:22  profilanswer
 

n°1335808
skeye
Posté le 30-03-2006 à 19:52:19  profilanswer
 

ça sent l'exercice de cours...[:dawao]


---------------
Can't buy what I want because it's free -
n°1335817
lepisme
Posté le 30-03-2006 à 20:05:22  profilanswer
 

en fait je me suis inspiré d'un exemple de cours d'il y a qques années maintenant,
dont j'ai moi-meme modifié l'énoncé
mais qui rend de fait l'exercice soit impossible soit très difficile..

n°1335818
skeye
Posté le 30-03-2006 à 20:06:04  profilanswer
 

Tu as fait quoi avec quel résultat, pour l'instant? :??:


---------------
Can't buy what I want because it's free -
n°1335821
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-03-2006 à 20:10:01  profilanswer
 

lepisme a écrit :

en fait je me suis inspiré d'un exemple de cours d'il y a qques années maintenant,
dont j'ai moi-meme modifié l'énoncé
mais qui rend de fait l'exercice soit impossible soit très difficile..


on y croit très fort...


---------------
J'ai un string dans l'array (Paris Hilton)
n°1335825
lepisme
Posté le 30-03-2006 à 20:15:53  profilanswer
 

skeye a écrit :

Tu as fait quoi avec quel résultat, pour l'instant? :??:


 
avec un collègue on a planché sur ce problème pendant 2H.. on a beau retourner tout dans tous les sens.. on se heurte à une impossibilité.. mais bon on n'est pas des spécialistes en BDD..
 
le truc (qui marche) le plus proche du résultat cherché est encore ceci:
 
http://img228.imageshack.us/img228/1774/exo5hj.gif
 
mais le fait de récupérer les max(qty) de chaque magasin ne me semble guère exploitable..

n°1335884
moi23372
Posté le 30-03-2006 à 21:21:07  profilanswer
 

je ferais un truc ainsi
 
select *
from (select sales.stor_id nom, sum(qty) nbr
from sales
group by sales.stor_id) t1
where nbr >= (select sum(qty)
                    from sales
                    where sales.stor_id = t1.stor_id
                    group by sales.stor_id);
 
voila ça doit être un truc ainsi... mais difficile à pondre sans pouvoir tester.

n°1336735
lepisme
Posté le 31-03-2006 à 22:11:49  profilanswer
 

merci de ta participation..
 
j'ai testé ta requete: ça génère une erreur dès la première ligne
Serveur: Msg 207, Niveau 16, État 3, Ligne 1
'stor_id' : Nom de colonne incorrect.

 
Quelque soient les noms de colonnes qu'on choisisse dans le select, le meme message persiste.
Le message d'erreur disparait lorsqu'on supprime la clause where:
 

Code :
  1. where nbr >= (select MAX(qty)
  2.                     from sales
  3.                     where sales.stor_id = t1.stor_id
  4.                     group by sales.stor_id);


 
En fait, j'ai tenté de comprendre ton code, mais j'ai du mal à comprendre à quoi sert cette dernière portion,
notamment quel role joue le   where sales.stor_id = t2.stor_id
 
Ca semble etre une condition de corrélation entre tables.. mais je ne vois pas très bien quelle présentement sa raison d'etre..
 
P.S. moi23372> veux-tu décrire quel était ton raisonnement stp (plus globalement, ça permet dans un premier temps de mettre de coté la syntaxe SQL )

n°1336842
Beegee
Posté le 01-04-2006 à 09:15:22  profilanswer
 

Il faut faire attention au fait que la table sales peut contenir plusieurs ventes d'un même ouvrage dans un même magasin ...
 
Essaye quelque chose comme :
 

Code :
  1. select st.stor_name, t.title, sum(sa.qty)
  2. from store st, sales sa, titles t
  3. where st.stor_id = sa.stor_id
  4. and t.title_id = sa.title_id
  5. group by st.stor_name, t.title
  6. having sum(sa.qty) =
  7. (select max(sum(qty))
  8. from (
  9. select t1.title, sum(sa1.qty)
  10. from store st1, sales sa1, titles t1
  11. where st1.stor_id = sa1.stor_id
  12. and t1.title_id = sa1.title_id
  13. and st1.stor_id = st.stor_id
  14. group by t1.title));


Message édité par Beegee le 01-04-2006 à 09:16:33

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  existe-t-il une requete pour ce problème SVP ??

 

Sujets relatifs
Problème lors de la compilation[PHP] Problème ajout utilisateur dans AD
problème de syntaxe...mailto probleme assistant de connexion
Problème id dans création de tableau dynamique [résolu]Probleme de mise en page
[SGBD/SQL] Oracle : PL/SQL, problème tout conProbleme DIV scrollable dans un Tableau
Problème avec un onblur... 
Plus de sujets relatifs à : existe-t-il une requete pour ce problème SVP ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR