Problème d'ajout de données

Problème d'ajout de données - SQL/NoSQL - Programmation

Marsh Posté le 26-05-2003 à 10:43:46    

J'ai deux tables dans lesquels j'ai différents champs: pour simplifier on va dire:
 
Table1
NumComposant, désignation, prix, ...
 
Table2
NumComposant, AugmentationPrixEnValeur
Cette deuxième table contient une partie des composants mais pas tous.
 
Je veux sélectionner tous les enregistrements de la table 1 mais avec le prix augmenté si le composant est présent dans la table 2
 
Voila la requête  
SELECT A.NumComposant, (A.Prix+B.AugmentationPrixEnValeur) AS NouveauPrix
FROM Table1 AS A LEFT OUTER JOIN Table2 AS B ON (A.NumComposant=B.NumComposant)
 
Cette requête ne fonctionne que si il y a un nouveau prix dans la table 2, sinon mon champ NouveauPrix est vide.
 
Est-ce que quelqu'un saurait comment faire


Message édité par maxwell01 le 26-05-2003 à 10:53:47
Reply

Marsh Posté le 26-05-2003 à 10:43:46   

Reply

Marsh Posté le 26-05-2003 à 10:53:43    

a mon avis le probleme vient du fait que si tu n'as pas d'enregistrement dans la table B le calcul : (A.Prix+B.AugmentationPrixEnValeur) n'est plus possible...
 
Essaye quelque chose comme ça:

Code :
  1. SELECT A.NumComposant, (A.Prix+ coalesce(B.AugmentationPrixEnValeur,0)) AS NouveauPrix
  2. FROM Table1 AS A LEFT OUTER JOIN Table2 AS B ON (A.NumComposant=B.NumComposant)


 
note: si tu es sous mySQL tu peux utiliser ifnull à la place de coalesce ...

Reply

Marsh Posté le 26-05-2003 à 10:55:13    

Kel SGBD ?

Reply

Marsh Posté le 26-05-2003 à 10:55:55    

Anapajari + 1

Reply

Marsh Posté le 26-05-2003 à 11:01:07    

Merci bcp ça marche parfaitement

Reply

Marsh Posté le 26-05-2003 à 11:01:27    

DB2 OK

Reply

Sujets relatifs:

Leave a Replay

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