PDA

Vollständige Version anzeigen : Problem mit Null-Feldern


<Anika>
13.01.2002, 14:00
Habe folgendes Problem:
select a+b+c as d from tabelle
Beim Errechnen einer Summe d aus 3 Spalten (a,b,c)einer Tabelle sind nicht immer alle 3 Spalten mit Werten gefüllt. Wenn a = 1, b=1 und c = 'NULL' ist ist das Ergebnis d aus a+b+c nicht 2 sondern 'Null'

Wie kann ich es ermöglichen das Leerfelder (NULL) als 0 behandelt werden ?
In anderen Datenbanksystemen als JET ist es zB möglich
die Spalte a beim Erstellen als 'notnull' zu definieren und so keine Leerfelder zu erlauben.

Ein vorherige Überprüfung/Änderung mittels
SET a=0 where a is null ist in diesem Zusammenhang nicht möglich, da ich die Daten von a aus einer verknüpften Tabelle hole, dh es gibt nicht immer ein Datensatz a zu b und c, den ich '0en' könnte.

Es müsste doch jemanden geben, der das gleiche Problem schon gelöst hat und sich Meiner erbarmt.

MarioR
13.01.2002, 15:14
Hallo Anika,

unter Access würde ich das so lösen:

SELECT Nz(a,0)+Nz(b,0)+Nz(c,0) AS d ...

<Anika>
13.01.2002, 15:35
Kenne mich mit Access selbst nicht gut aus.
Funktioniert die Funktion Nz(x,0) auch in SQL-Abfrage (JET). NZ heißt wahrscheinlich not zero oder?

<Anika>
13.01.2002, 15:56
Habe es ausprobiert funktioniert nicht Fehler: unbekannte Funktion.
Das wäre aber die Lösung gewesen: eine Funktion, die ein Feld ohne Inhalt in einen bestimmten Wert ändert.
Danke trotzdem

MarioR
13.01.2002, 16:04
Schade, das wäre die einfachste Lösung gewesen.

Aber wie sieht's denn damit aus:

SELECT IIF(IsNull(a),0,a)+IIF(IsNull(b),0,b)+...

<Anika>
13.01.2002, 16:28
Einwandfrei.
Habe eben nochmal in der MSDN-Hilfe nachgelesen,
ich wußte garnicht das es so eine Funktion gibt!

Vielen, vielen Dank
Anika