J'ai deux tables. Une table est en réalité peuplée par des événements quotidiens tandis que l'autre est juste un résumé de l'autre table. J'ai une procédure stockée qui supprime les valeurs stockées dans la table quotidienne. Maintenant, après chaque suppression, la table récapitulative doit également être mise à jour de sorte que la somme soit maintenant mise à jour moins la valeur de celle supprimée.Erreur de mise à jour de la table de base de données sur la valeur NULL
Mon problème est que lorsque la table Daily a été vidée, la somme automatique de celle-ci donne une valeur NULL (puisqu'aucune entrée n'y est trouvée). L'application se bloque alors car ma table récapitulative ne doit pas contenir de valeurs NULL.
Si c'est possible, comment puis-je créer une procédure qui rendrait la valeur 0 si le SUM aboutissait à NULL?
QUERY EXEMPLE: De ma requête donnée ci-dessus
DELETE FROM Daily WHERE DailyID = @DailyID
SELECT @TotalA = SUM(o.OutA), @TotalB = SUM(o.OutB), @TotalC = SUM(o.OutB)
FROM Daily
WHERE Day = @Day
UPDATE Summary
SET MyA = @TotalA, MyB = @TotalB, MyC = @TotalC
WHERE SummaryID = @SummaryID
, disons que j'ai un total de 10 entrées dans mon tableau quotidien. 2 sont les entrées du mercredi, 3 sont le vendredi et 5 sont les entrées du samedi. Donc, fondamentalement, mon tableau récapitulatif aura trois entrées - un résumé de chaque mercredi, samedi et vendredi.
Lorsque je demande à ma procédure de supprimer toutes les entrées du mercredi, il reste 8 entrées (pas de mercredi). Et donc je dois mettre à jour mon entrée récapitulative disant que toutes les entrées du mercredi ont été supprimées. Cependant, je ne veux pas que ma Table récapitulative oublie qu'il a eu un mercredi. Donc à la place, je veux qu'il conserve l'entrée du mercredi avec Total Summary Values of Zeroes (0).
J'utiliserais 'COALESCE', comme il est standard et fonctionne pour Oracle, Sql-Server, MySQL, ... –
Exactement ce dont j'avais besoin! Merci beaucoup! – Smiley
btw, oui. c'est dans SQL Server 2008 :) – Smiley