NZ(Feld1, 0) liefert "0"

12/07/2009 - 17:09 von Patrick Jox | Report spam
Hallo zusammen,
ich habe folgende Abfrage mit der ich Summen über Betràge in untergeordneten
Tabellen bilde. Immer dann, wenn in der Untergeordneten Tabelle keine Daten
zu einer Person enthalten sind, lasse ich mit der Funktion NZ() den Wert "0"
zurückgeben. Das Problem ist, dass ich dann diese Spalte offensichtlich vom
Typ Text und nicht vom Typ Zahl ist. Nun wollte ich das einfach hat umgehen
und die SQL-Befehle CONVERT() oder CAST() anwenden. Beide sind in Access
(Jet) offensichtlich nicht verfügbar. Das wirkt sich dann bei der Sortierung
und auch im Report aus, wo ich keine Summen bilden lassen kann.

SELECT Person.PersonID,
NZ((SELECT SUM(Betrag) FROM Zahlung WHERE Zahlung.PersonId =
Person.PersonID),0) AS Zahlungen,
NZ((SELECT SUM(Betrag) FROM ZusatzKosten WHERE ZusatzKosten.PersonID =
Person.PersonID),0) AS ZusatzKosten,
NZ((SELECT SUM(Betrag) FROM Auszahlung WHERE Auszahlung.PersonID =
Person.PersonID),0) AS Auszahlungen,
NZ((SELECT SUM(VereinbarterPreis) FROM PersonKurs WHERE PersonKurs.PersonID
= Person.PersonID),0) AS Kursgebühren,
(Zahlungen-Kursgebühren-Auszahlungen-Zusatzkosten) AS Liquiditàt
FROM Person;

Danke für jeden Hinweis.

Viele Grüße
Patrick
 

Lesen sie die antworten

#1 Jens Schilling
12/07/2009 - 18:19 | Warnen spam
Hallo, Patrick

Patrick Jox wrote:
Hallo zusammen,
ich habe folgende Abfrage mit der ich Summen über Betràge in
untergeordneten Tabellen bilde. Immer dann, wenn in der
Untergeordneten Tabelle keine Daten zu einer Person enthalten sind,
lasse ich mit der Funktion NZ() den Wert "0" zurückgeben. Das Problem
ist, dass ich dann diese Spalte offensichtlich vom Typ Text und nicht
vom Typ Zahl ist.



In der Hilfe ist zu lesen:

Zitat:

... (gibt immer eine leere Zeichenfolge zurück, wenn sie in einem
Abfrageausdruck verwendet wird)

Zitat Ende

Probier's doch mal einfach mal mit einem Val() drum herum:

Val(NZ(Feld1, 0))

Gruss
Jens

Ähnliche fragen