|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : juin 2010 Messages : 14 ![]() |
Bonjour,
je souhaiterais votre aide pour m'aider a améliorer une requête utilisée pour le boulot. Je précise que je n'ai accès a rien d'autre que ces requêtes, je n'ai pas accès à la partie "administrateur". J'utilise cette requête pour analyser des ventes de livres : Code :
Code :
Par avance merci de votre aide, je n'y connais rien en SQL ... |
||||
|
|
00
|
|
|
#2 | |||||
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
Bonjour,
Citation:
Ce qu'il te faut c'est une jointure: http://sqlpro.developpez.com/cours/sqlaz/jointures/ D'abord une requete strictement equivalente à ta deuxième requetes, en utilisant des jointures standard. Code :
Code :
Parce que la jointure c'est quand même le b-a , ba du SQL A+ Soazig |
|||||
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2010 Messages : 14 ![]() |
merci soazig pour ta réponse.
J'ai testé aujourd'hui ta requête et elle ne fonctionne pas. J'ai le message d'erreur suivant : Server '4', Line 1: Adaptive Server cannot perform the requested action because column 'numaut' is not within the scope of the joined table expression. Check your command for missing or incorrect database objects, variable names, and/or input data. Une idée ? Par avance merci pour le coup de main. |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Citation:
Vous avez donc seulement executé sa proposition, puis copié / collé ici le message d'erreur ? Lisez 30 seondes la requête, regardez le descriptif de vos tables (le noms des colonnes en particulier), le message d'erreur et vous trouverez d'où vient le problème... |
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : août 2009 Messages : 779 ![]() |
Ce n'est pas "strictement" équivalent : pour ça il faudrait utiliser des LEFT OUTER JOIN, car la requête initiale (utilisant des requêtes scalaires) ramènera les lignes même si la requête scalaire ne ramène que NULL.
|
|
|
00
|
|
|
#6 | |
|
Invité de passage
![]() Inscription : juin 2010 Messages : 14 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Soit, votre erreur est spécifique à sybase qui ne permet pas de référencer, dans les jointures, une colonne d'une table jointe présente dans une jointure qui se situe après son rang de jointure (je sais pas si c'est clair ?).
Là en l’occurrence si on reprend la requête de Soazig : Code :
Ceci implique en fait qu'il y a effectivement un problème avec la requête de Soazig car elle ne fait pas une jointure correct avec la table pdt_auteur. Il faudrait plutôt faire la jointure entre cette table et la table produit. Je vous laisse recouper avec votre 1ere requête pour trouver les colonnes de jointures. edit: et par la même occasion vous pourriez aussi mettre en place la remarque de Rei Ichido qui était pertinente. |
||
|
|
00
|
|
|
#8 | |||
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
bonjour,
Voilà j'ai corrigé mon erreur et mis des jointures externes. Code :
Citation:
Pourquoi dois tu corriger cette requête. Il faudra peut-être que tu apprennes le sql, car tu ne trouveras pas toujours une brave c... pour faire tes requêtes à ta place. Pour apprendre le sql le site que je t'ai cité est un bon début, y as-tu jeté un coup d'oeil, ou as-tu attendu qu'on te donne la réponse ? D'un autre côté si tu n'auras jamais d'autres requêtes à faire, on peut en rester là. A+ Soazig |
|||
|
|
10
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Suffit de regardez l'historique de ses msg pour comprendre qu'il n'en a strictement rien a foutre de cette partie de son job, et utilise les forums pour réaliser son taf +
|
|
|
10
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juin 2010 Messages : 14 ![]() |
merci pour vos réponses.
En effet, je ne suis pas supposé utiliser sql dans mon boulot, d'ou mon absence de formation a ce sujet. Je l'utilise extrêmement ponctuellement, mais cela n'est pas mon travail. Je vais néanmoins suivre vos conseils et lire les lien que vous m'avez mis en copie. Encore merci pour votre aide. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com