Entwickler-Ecke
Datenbanken - SQL-Addition = 0??
OlliWausD - Mi 17.11.04 15:05
Titel: SQL-Addition = 0??
hi leutz,
brächte mal kurz eure hilfe.
folgendes:
ich hab einen SQL-Befehl:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| SELECT Artikel.NR, ((SELECT FeldA * FeldB FROM Tabelle2 WHERE .....) + (SELECT FeldX * FeldY FROM Tabelle3 WHERE .....)) FROM Artikel WHERE ..... |
Sobald aber in einem der 2 Selectabfragen der Wert <null> rauskommt, ist das Endergebnis aus den beiden Abfragen (F_1) immer <null>
Wieso????? In der Mathematik ist doch auch 3+0 = 3 und 3+{} auch 3
Hab ich vielleicht irgendwas falsch interpretiert oder denk ich wieder zu komplex
OlliW
EDIT: Getestet auf Interbase, Firebird 1.0 und Firebird 1.5
Udontknow - Mi 17.11.04 15:09
Das hat mich auch schon häufig in den Wahnsinn getrieben, aber es ist nun mal so.
NULL könnte man als "Wert Unbekannt" betrachten, und wenn du zu einem unkekannten Wert etwas addierst, tja, dann ist die Summe leider auch "unbekannt".
Cu,
Udontknow
OlliWausD - Mi 17.11.04 15:13
hm.... ok,
ich schreibs mal in eine Stored Procedure um.
thanks
mfg
OlliW
OlliWausD - Mi 17.11.04 15:41
so! hat alles geklappt !
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| CREATE PROCEDURE SP_ABC ( EINGABE CHAR(16)) RETURNS ( ARTIKEL_ABC CHAR(16), VER1 DOUBLE PRECISION, VER2 DOUBLE PRECISION, VER3 DOUBLE PRECISION) AS begin for select artikel.nr from artikel where ..... into:Artikel_ABC do begin select sum(FeldA*FeldB) from Tabelle2 where ..... into: Var1;
select sum(FeldX*FeldY) from Tabelle3 where ..... into :VER2;
if (VER1 is null) then VER1 = 0; if (VER2 is null) then VER2 = 0; VER3 = VER1 + VER2;
suspend; end end |
mfg
OlliW
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!