|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : février 2003 Messages : 14 ![]() |
Bonjour,
J'ai une DB avec les tables: - article (idarticle, quantitestock, qteabime) - reservation (idarticle, qtereserv) - commande (idcomm) - detail_commande (idarticle, idcomm, qtecomm). Je voudrais pouvoir calculer le nombre d'article que j'ai en stock avec la formule: quantiteenstock - qteabime - qtereserv + qtecomm. Le probleme que je rencontre c'est si un article n'a pas ete commande ou reserve. PostgreSQL ne le considere pas à 0. Voilà un exemple de code que j'ai essayé sans resultat : Code :
Merci |
||
|
|
00
|
|
|
#2 | ||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
En fait, c'est le probleme de la valeur NULL : NULL + nimportequelnombre donne un resultat indeterminé.
Utilise Coalesce pour retourner la premiere valeur non nulle : Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Tu peux eventuellement (mais ce n'est pas conseillé dans ce cas ) utiliser les CASE
Code :
|
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : février 2003 Messages : 14 ![]() |
Merci pour ces 2 reponses mais aucune ne fonctionne
|
|
|
00
|
|
|
#5 | ||||||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Ok, je crois avoir trouvé, je n'avais pas fait attention a tes vues, essaye ce groupe de requete
Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2003 Messages : 14 ![]() |
Si je fais :
ou je n'obtiens que les valeurs qui sont entrees dans ces tables donc en appelant qtereserv.qteres ou qtecomm.qtecom ca pose toujours le meme probleme. |
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Dans tes tables qtereserv, qtecomm as tu des valeurs qui sont a NULL ?
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : février 2003 Messages : 14 ![]() |
non, elles ne sont pas encore initialisees.
je voudrais pouvoir faire le calcul, par exemple, si un article est réservé mais pas commandé. Donc dans detail_commande, idarticle n'y sera pas. Peut être aurai-je dû expliquer ca en commençant. |
|
|
00
|
|
|
#9 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Humm, effectivement ça peut aider, à mon avis, il va falloir voir du coté de la jointure (faire du OUTER JOIN)...
|
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : février 2003 Messages : 14 ![]() |
Merci pour l'aide j'ai enfin trouvé.
Voici le code : Code :
Un grand merci hpalpha |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com