Hallo Zusammen,
in einer Stored Procedure soll ein Bestand aus Beträgen ermittelt werden, die sich durch ein Tabellenfeld unterscheiden. in dieser Procedure habe ich zwei select sum() abfragen, die das ergebnis, mit hilfe des Tabellenfeldes zur Unterscheidung, jeweils in eine eigene variable speichern. Zum Schluß wird ein Ausgabe-Parameter als Rechnung var1 - var2 ausgeführt.
select sum(feld) from tabelle where parameterfeld = 0 into var1
select sum(feld) from tabelle where parameterfeld = 1 into var2
ausgabeparameter = var1 - var2
dies liefert immer den Wert 0.
Mein Versuch, dazu zwei weitere proceduren zu verwenden, um die Beträge mit dem parameterfeld zu ermitteln, hatten das gleiche ergebnis.
Wo liegt mein Denkfehler?
Danke schon mal an alle.
Negatives Ergebnis einer Stored Procedure
Moderator: martin.koeditz
Was kommt denn bei den beiden Summen raus, wenn du dies native machst?
Alterative:
select sum(case when parameterfeld = 0 then feld else null end)
- sum(case when parameterfeld = 1 then feld else null end)
from tabelle
where parameterfeld in (0, 1)
into ausgabeparameter
Vorteil: Der SQL läuft nur 1x durch die Tabelle und ist dann auch doppelt so schnell.
Alterative:
select sum(case when parameterfeld = 0 then feld else null end)
- sum(case when parameterfeld = 1 then feld else null end)
from tabelle
where parameterfeld in (0, 1)
into ausgabeparameter
Vorteil: Der SQL läuft nur 1x durch die Tabelle und ist dann auch doppelt so schnell.