Benutzer mit den meisten Antworten
SQL Trigger mit Leeren Variablen

Frage
-
Hallo,
ich nutze in einem Trigger eine Berechnung
SET @gSumme = ( SELECT SUM(tbl1.decPreisG) AS Summe FROM tbl1 INNER JOIN inserted ON tbl1.Bereich = inserted.Bereich WHERE tbl1.Bereich = inserted.Bereich AND tbl1.Bereich1 = 'VermAG' )
Es kann jedoch vorkommen das keine Datensätze in der tbl1 enthalten sind, ich habe versucht
IF @gSumme IS NULL SET @gSumme = 0
zu setzen das funktioniert leider nicht, was mach ich dabei falsch?
Danke
Ralf
Antworten
-
Hallo Ralf,
setze ein ISNULL außen um die SELECT Anweisung:
SET @gSumme = ISNULL( (SELECT SUM(tbl1.decPreisG) AS Summe FROM ...) , 0)
(Beim SUM wirkt es nicht, wenn manchmal keine Zeilen gefunden werden, wie Du schreibst.)
Gruß Elmar
- Als Antwort markiert Joe72ka Donnerstag, 5. Januar 2017 13:31
-
Hallo Ralf,
probier's mal mit:
SELECT ISNULL( SUM( ... ), 0 ) AS Summe ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Joe72ka Donnerstag, 5. Januar 2017 13:31
Alle Antworten
-
Hallo Ralf,
probier mal ein
coalesce(sum(tbl1.decPreisG), 0) AS Summe
Allerdings hätte das SET auch funktionieren sollen.
Was bekommst Du für einen Fehler?
Vielleicht postest Du auch mal den ganzen Trigger?
Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Stefan FalzModerator Donnerstag, 5. Januar 2017 13:54
-
Hallo Ralf,
probier's mal mit:
SELECT ISNULL( SUM( ... ), 0 ) AS Summe ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Joe72ka Donnerstag, 5. Januar 2017 13:31
-
Hallo Ralf,
setze ein ISNULL außen um die SELECT Anweisung:
SET @gSumme = ISNULL( (SELECT SUM(tbl1.decPreisG) AS Summe FROM ...) , 0)
(Beim SUM wirkt es nicht, wenn manchmal keine Zeilen gefunden werden, wie Du schreibst.)
Gruß Elmar
- Als Antwort markiert Joe72ka Donnerstag, 5. Januar 2017 13:31
-
Hallo Elmar,
nur zum Verständnis:
SELECT ISNULL( SUM( ... ), 0 ) AS Summe ...
würde also nicht funktionieren (inwiefern?) wenn beim SELECT an sich keine Datensätze zurückgegeben werden?
Falls ja: Unter welchen Umständen passiert das? Denn bei verschiedenen Tests konnte ich das nicht nachvollziehen, da wird dann brav 0 zurückgegeben.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community