Hans-Georg Normann
28-12-2004, 16:02
Diese Finanzdatenbank bringt mich um den Verstand :confused:
Ich habe ein Tabelle Forderungen (RECEIVABLES) und eine Zahlungen (PAYMENTS). Gesucht werden alle Forderungen in Fremdwährung, welche noch nicht ausgeglichen sind. Das ganze kann ich nur mittels Journal festellen, da die Auswertung auch rückwirkend sein muß. Als Datenbank wir Firebird 1.5 eingesetzt.
Das hier läuft schon ganz prächtig:
Select
R.ACCOUNT,
R.DOCUMENT_NO,
SUM(R.RECEIVABLE) RECEI,
SUM(P.PAYMENT) PAYED,
SUM(R.RECEIVABLE) + SUM(P.PAYMENT) OP,
SUM(R.CURR_RECEIVABLE) CURR_RECEI,
SUM(P.PAYMENT * R.EXCHANGE_RATE) CURR_PAYED,
SUM(R.CURR_RECEIVABLE) +
SUM(P.PAYMENT * R.EXCHANGE_RATE) CURR_OP
FROM RECEIVABLES R LEFT OUTER JOIN PAYMENTS P ON (
R.ACCOUNT = P.ACCOUNT
AND R.DOCUMENT_NO = P.DOCUMENT_NO
)
Where R.FINANCIAL_MONTH < 200402
AND R.CURR_NO = 3
GROUP BY R.ACCOUNT, R.DOCUMENT_NOProblem :
Wenn noch keine Zahlungen vorhanden sind, dann erhalte ich bei allen ausgegebenen Sätzen die Funktionen wie SUM(P. irgendwas) enthalten, den Wert NULL. Damit kann ich leider nicht rechnen.
Kann ich SQL irgendwie dazu bringen, statt NULL 0.0 auszugeben? Die letzte Abfragebedingung soll nämlich
HAVING SUM(R.RECEIVABLE) + SUM(P.PAYMENT) <> 0.0 sein.
Hans
Ich habe ein Tabelle Forderungen (RECEIVABLES) und eine Zahlungen (PAYMENTS). Gesucht werden alle Forderungen in Fremdwährung, welche noch nicht ausgeglichen sind. Das ganze kann ich nur mittels Journal festellen, da die Auswertung auch rückwirkend sein muß. Als Datenbank wir Firebird 1.5 eingesetzt.
Das hier läuft schon ganz prächtig:
Select
R.ACCOUNT,
R.DOCUMENT_NO,
SUM(R.RECEIVABLE) RECEI,
SUM(P.PAYMENT) PAYED,
SUM(R.RECEIVABLE) + SUM(P.PAYMENT) OP,
SUM(R.CURR_RECEIVABLE) CURR_RECEI,
SUM(P.PAYMENT * R.EXCHANGE_RATE) CURR_PAYED,
SUM(R.CURR_RECEIVABLE) +
SUM(P.PAYMENT * R.EXCHANGE_RATE) CURR_OP
FROM RECEIVABLES R LEFT OUTER JOIN PAYMENTS P ON (
R.ACCOUNT = P.ACCOUNT
AND R.DOCUMENT_NO = P.DOCUMENT_NO
)
Where R.FINANCIAL_MONTH < 200402
AND R.CURR_NO = 3
GROUP BY R.ACCOUNT, R.DOCUMENT_NOProblem :
Wenn noch keine Zahlungen vorhanden sind, dann erhalte ich bei allen ausgegebenen Sätzen die Funktionen wie SUM(P. irgendwas) enthalten, den Wert NULL. Damit kann ich leider nicht rechnen.
Kann ich SQL irgendwie dazu bringen, statt NULL 0.0 auszugeben? Die letzte Abfragebedingung soll nämlich
HAVING SUM(R.RECEIVABLE) + SUM(P.PAYMENT) <> 0.0 sein.
Hans