Help pour requête SQL

Help pour requête SQL - SQL/NoSQL - Programmation

Marsh Posté le 10-03-2008 à 18:54:56    

Bonjour à tous,
 
J'expose mon problème.
je souhaiterai faire une addition sur un champs d'une table mais je n'arrive pas à faire les jointures entre les tables.
 
Je m'explique :
 
J'ai :  
 
une table suivi_client avec comme champs NumClient et NumArticleLoue
une table article avec comme champs NumArticle, Categorie
une table categorie avec comme champs Categorie et Prix
 
Je souhaiterai donc effectué le calcul suivant :
 
Additionne les Prix (de la table categorie) des NumArticle(de la table article) où les NumArticleLoue(de la table suivi_client) ont pour NumClient(de la table suivi_client) 29.
 
J'espère que c'est assez claire.
 
En tout cas j'attends vos propositions avec impatience car la je bute!
 
Merci à vous


Message édité par Elmoricq le 10-03-2008 à 20:12:33
Reply

Marsh Posté le 10-03-2008 à 18:54:56   

Reply

Marsh Posté le 10-03-2008 à 20:13:46    

J'ai édité ton titre : les titres tout en majuscules sont interdits (cf. règles de la catégorie).

 

Sinon, une jointure se fait simplement par égalité sur les clefs.
Il y a plusieurs méthodes, mais tu peux écrire un truc du genre :
"select <liste de champs> from table1, table2, table3 where table1.clef = table2.clef and table2.autre_clef = table3.autre_clef"

 

Pour additionner le contenu d'un champ, ensuite, il suffit de faire "sum(champ)" dans le select. En revanche il te faudra pour cela regrouper les enregistrements, une instruction "group by" en fin de requête est donc nécessaire : http://sqlpro.developpez.com/cours/sqlaz/ensembles/


Message édité par Elmoricq le 10-03-2008 à 20:15:31
Reply

Marsh Posté le 10-03-2008 à 21:36:03    

Oups, désolé pour le titre en majuscule.
Pour ce qui est de ta proposition, le souci est qu'il n'y a pas que des clé à comparer.
En effet, la table suivi_client n'a pas de clé défini, la table article a comme clé NumArticle et la table categorie à pour clé Categorie(qui correpond à une couleur)
 
Le but étant de récupérer le Prix de la couleur auquel l'article est affilié. Et tout cela en fonction du NumClient.
 
Je ne sais pas si c'est très claire...

Reply

Marsh Posté le 10-03-2008 à 22:05:24    

NumArticleLoue != NumArticle ?
 
Si oui, et que ta table client n'a véritablement pas de clef, alors sur quelles bases peux-tu récupérer les informations voulues avec des jointures ? Tu ne peux tout simplement pas le faire si tu n'as aucun identifiant unique.

Reply

Marsh Posté le 11-03-2008 à 15:03:29    

effectivement, lorsque elmoricq parle de "clés", il parle de clés étrangères.
 
dans suivi_client, il y a deux FK, l'une pointant sur la PK de client (numclient) qui te sert à) faire le filtre "29", et l'autre pointant sur la PK de article (numarticleloue).
 
la PK de cette table est simplement la clé composite basée sur ces deux champs à priori, et y'a pas besoin d'autre clé.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed