lordfritte
Lieutenant
- Registriert
- Juli 2006
- Beiträge
- 969
Hallo, ich habe in einer MySQL Datenbank 2 Tabelle:
Und:
In Konten, werden Konten erfasst, wert stellt einen startwert bei Erfassung da.
In Buchungen werden für jedes Konto Buchungen Erfasst, Beträge die rausgehen oder rein kommen.
Die Auflistung der Konten erfolgt mit folgender Abfrage:
k.Wert + SUM(b.Wert) AS wert brauche ich, um mir immer die aktuellen Guthaben auf den Konten anzeigen zu lassen.
Ich benutze ein LEFT JOIN, weil ich auch Konten auflisten möchte zu denen es noch keine Buchungen gibt.
Jetzt zu meinem Problem: Bei Konten, zu denen es noch keine Buchung gibt, habe ich in der Spalte wert einen NULL-Wert. Kann ich die NULL-Werte automatisch durch k.wert ersetzen lassen? Oder zu mindestens einrichten, dass bei SUM(b.Wert) als Ergebnis 0 rauskommt?
Code:
CREATE TABLE `konten` (
`idKonto` int(11) NOT NULL AUTO_INCREMENT,
`kontoTyp` int(11) NOT NULL DEFAULT '0',
`name` varchar(30) NOT NULL,
`wert` double NOT NULL DEFAULT '0',
PRIMARY KEY (`idKonto`),
UNIQUE KEY `ui_konto` (`name`)
) ENGINE=InnoDB
Code:
CREATE TABLE `buchungen` (
`idBuchung` int(11) NOT NULL AUTO_INCREMENT,
`buchungsTyp` int(11) NOT NULL DEFAULT '0',
`datum` datetime NOT NULL,
`idKonto` int(11) NOT NULL,
`wert` double NOT NULL DEFAULT '0',
`beschreibung` varchar(120) NOT NULL,
PRIMARY KEY (`idBuchung`),
KEY `fk_buchung_idKonto` (`idKonto`),
CONSTRAINT `fk_buchung_idKonto` FOREIGN KEY (`idKonto`) REFERENCES `konten` (`idKonto`)
) ENGINE=InnoDB
In Buchungen werden für jedes Konto Buchungen Erfasst, Beträge die rausgehen oder rein kommen.
Die Auflistung der Konten erfolgt mit folgender Abfrage:
Code:
SELECT k.idKonto AS idKonto, k.kontoTyp AS kontoTyp, k.name AS name, k.Wert + SUM(b.Wert) AS wert, k.wert As startWert
FROM Konten AS k
LEFT JOIN Buchungen As b ON k.idKonto = b.idKonto
GROUP BY k.idKonto;
Ich benutze ein LEFT JOIN, weil ich auch Konten auflisten möchte zu denen es noch keine Buchungen gibt.
Jetzt zu meinem Problem: Bei Konten, zu denen es noch keine Buchung gibt, habe ich in der Spalte wert einen NULL-Wert. Kann ich die NULL-Werte automatisch durch k.wert ersetzen lassen? Oder zu mindestens einrichten, dass bei SUM(b.Wert) als Ergebnis 0 rauskommt?