Addition plusieurs attributs de plsrs tables

Fermé
Lenia - 20 mai 2010 à 20:11
blux Messages postés 26039 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 15 mai 2024 - 24 mai 2010 à 21:27
Bonjour,


Je m'adresse à vous après avoir avoir fait de nombreuses recherches , je suis stagiaire et dois rendre mon travail dans quelques jours, je suis donc bien embétée... Merci à tous ceux qui essaierai de m'aider!!!...

Ma question:
Est-il possible d'additionner plusieurs champs (venant d'attributs différents) provenant de tables différentes? (Oui, ça fait beaucoup de différents ^^) Encore merci!!

Voilà ma requête qui ne fonctionne pas

mysql_query("update maTable
SET total_final=(SELECT (table1.champsTruc+table2.champsChouette
as result)
WHERE annee='$an'");

(table1 contient des champs dont champsTruc, table2 contient des champs dont champsChouette)

1 réponse

blux Messages postés 26039 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 15 mai 2024 3 289
20 mai 2010 à 20:37
Salut,

aucun problème, il suffit de préciser dans le FROM les noms des tables concernées et ne pas oublier de faire une jointure entre les deux tables, sinon, on risque le produit cartésien.

Tu peux tester avec cette requête :

SELECT table1.champ1 + table2.champ2 FROM table1,table2;

qui devrait te renvoyer un nombre de lignes égal au produit du nombre de lignes de chacune des deux tables.
0
Merci pour ta réponse!!

Voici ma requête complète, qui ne fonctionne pas..
J'ai ajouté le "from" et essayé de faire les jointures dans le "where" mais je dois encore être à côté...
Peux-tu m'aider stp?

mysql_query("update total_charges_orga
SET somme_total_charges_orga=(SELECT (serv_ext.somme_Serv_Ext+autre_serv.somme_Autres_Services
AS result
FROM serv_ext,autre_serv)
WHERE serv_ext.somme_Serv_Ext=autre_serv.somme_Autres_Services AND annee='$an' AND pole='$log'");
0
Après réflexion j'en suis arrivée à ceci... qui ne fonctionne toujours pas. Bouahhhh snif snif !! ^^ lol
mysql_query("update total_charges_orga
SET somme_total_charges_orga=(SELECT (a.somme_Serv_Exterieur+b.somme_Autres_Services)
AS result
FROM serv_ext a, autre_serv b)
WHERE a.somme_Serv_Exterieur = b.somme_Autres_Services AND annee='$an' AND pole='$log'");
0
blux Messages postés 26039 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 15 mai 2024 3 289
21 mai 2010 à 15:50
qui ne fonctionne toujours pas
Soit, mais si tu détaillais le problème, on pourrait aller plus en avant : message d'erreur, trop de résultats renvoyés, pas de résultats, coupure électrique, intervention du gign... ?
0
"coupure électrique" mdr!!! J'ai pas encore appris à mon ordinateur à se révolter comme ça, c'est une idée! ^.^

He bien je n'ai aucun message d'erreur (je travaille directement sur ma page php), je vois juste que la valeur de ma base de donnée - devant donner le résultat final - reste à 0, donc n'effectue pas l'addition que je souhaiterai réaliser..

Bonne journée!
0
blux Messages postés 26039 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 15 mai 2024 3 289
24 mai 2010 à 21:27
essaye déjà en mettant une valeur numérique (SET ... = 12) puis en faisant une requête simple (SET .... = (SELECT 12 FROM ...), puis en complexifiant de plus en plus jusqu'à voir où ça coince...
0