# Bases de donnes > Langage SQL > Livres >  Analyse des ventes de livres

## Svodoll

Bonjour,

je souhaiterais votre aide pour m'aider a amliorer une requte utilise pour le boulot.

Je prcise que je n'ai accs a rien d'autre que ces requtes, je n'ai pas accs  la partie "administrateur".

J'utilise cette requte pour analyser des ventes de livres :



```

```

Et celle-ci pour analyser mes stocks :



```

```

Je souhaiterais intgrer a ma requte de stocks le nom des auteurs (utilis dans la premire requte). Comment faire ?

Par avance merci de votre aide, je n'y connais rien en SQL ...

----------


## soazig

Bonjour,




> je n'y connais rien en SQL ...


On s'en ai rendu compte rien qu' lire tes requtes.
Ce qu'il te faut c'est une jointure:
http://sqlpro.developpez.com/cours/sqlaz/jointures/

D'abord une requete strictement equivalente  ta deuxime requetes, en utilisant des jointures standard.


```

```

Et pour avoir le nom de l'auteur en plus il y a deux jointures de plus


```

```

Essaie de lire le tutoriel que je t'ai conseill, et de comprendre tes requtes et les miennes avant de continuer.
Parce que la jointure c'est quand mme le b-a , ba du SQL

A+
Soazig

----------


## Svodoll

merci soazig pour ta rponse.

J'ai test aujourd'hui ta requte 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 ide ?

Par avance merci pour le coup de main.

----------


## punkoff

> merci soazig pour ta rponse.
> 
> J'ai test aujourd'hui ta requte 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 ide ?
> 
> Par avance merci pour le coup de main.


Bonjour,

Vous avez donc seulement execut sa proposition, puis copi / coll ici le message d'erreur ?

Lisez 30 seondes la requte, regardez le descriptif de vos tables (le noms des colonnes en particulier), le message d'erreur et vous trouverez d'o vient le problme...

----------


## Rei Ichido

> D'abord une requete strictement equivalente  ta deuxime requetes, en utilisant des jointures standard.


 Ce n'est pas "strictement" quivalent : pour a il faudrait utiliser des LEFT OUTER JOIN, car la requte initiale (utilisant des requtes scalaires) ramnera les lignes mme si la requte scalaire ne ramne que NULL.

----------


## Svodoll

> Bonjour,
> 
> Vous avez donc seulement execut sa proposition, puis copi / coll ici le message d'erreur ?
> 
> Lisez 30 seondes la requte, regardez le descriptif de vos tables (le noms des colonnes en particulier), le message d'erreur et vous trouverez d'o vient le problme...


Le problme est que je n'ai pas accs a tout cela, j'ai juste mes requtes. et je n'y connais absolument rien en sql, do ma demande d'aide ...

----------


## punkoff

Soit, votre erreur est spcifique  sybase qui ne permet pas de rfrencer, dans les jointures, une colonne d'une table jointe prsente dans une jointure qui se situe aprs son rang de jointure (je sais pas si c'est clair ?).

L en loccurrence si on reprend la requte de Soazig :


```

```

Cette jointure est donc rejete car on fait une jointure sur auteur.numaut alors que cette colonne appartient  la table auteur.

Ceci implique en fait qu'il y a effectivement un problme avec la requte de Soazig car elle ne fait pas une jointure correct avec la table pdt_auteur.
Il faudrait plutt faire la jointure entre cette table et la table produit.


Je vous laisse recouper avec votre 1ere requte pour trouver les colonnes de jointures.

edit:  et par la mme occasion vous pourriez aussi mettre en place la remarque de Rei Ichido qui tait pertinente.

----------


## soazig

bonjour,
Voil j'ai corrig mon erreur et mis des jointures externes.


```

```

 parce que je n'aime pas poster des neries, mais j'aimerais bien que Svodoll tu essaies de comprendre ces requtes.



> je n'y connais absolument rien en sql,


Oui mais quel est ton job?
Pourquoi dois tu corriger cette requte.
Il faudra peut-tre que tu apprennes le sql, car tu ne trouveras pas toujours une brave c... pour faire tes requtes  ta place.
Pour apprendre le sql le site que je t'ai cit est un bon dbut, y as-tu jet un coup d'oeil, ou as-tu attendu qu'on te donne la rponse ?

D'un autre ct si tu n'auras jamais d'autres requtes  faire, on peut en rester l.
A+
Soazig

----------


## punkoff

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 raliser son taf +

----------


## Svodoll

merci pour vos rponses.

En effet, je ne suis pas suppos utiliser sql dans mon boulot, d'ou mon absence de formation a ce sujet. Je l'utilise extrmement ponctuellement, mais cela n'est pas mon travail.

Je vais nanmoins suivre vos conseils et lire les lien que vous m'avez mis en copie.

Encore merci pour votre aide.

----------

