Anbei den Code zum Erstellen des Views.
DROP VIEW abrechnung;
CREATE VIEW abrechnung AS
SELECT
-- Adressdaten holen
(SELECT text FROM klassifikation WHERE id = m.anrede) AS anrede, name, vorname,
(SELECT plz FROM gebaeude WHERE w.gebaeude = id) AS plz,
(SELECT ort FROM gebaeude WHERE w.gebaeude = id) AS ort,
(SELECT strasse FROM gebaeude WHERE w.gebaeude = id) AS strasse,
-- Mietdauer fuer relative Anteile. Zahl 36 steht fuer 12 Monate von 3 Mietparteien.
(SELECT mietmonate(m.id, 2005)/36) AS schluessel,
-- Bestimmung der Personenanzahl im gegebenen Zeitraum.
(SELECT personen FROM mieteumlage WHERE mieter = m.id) AS personen,
-- Betraege, die aufs Konto ueberwiesen wurden
(SELECT (einzahl(m.id, '2005-01-01', '2005-12-31') - miete * mietmonate(m.id, 2005)) FROM mieteumlage WHERE mieter = m.id) AS umlagenteil,
einzahl(m.id, '2005-01-01', '2005-12-31') AS einzahlungen,
-- Daten fuer Brandversicherung
(SELECT kennung FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-31') AND bemerkung ILIKE '%feuer%') AS brandv_rech,
(SELECT SUM(betrag)*(mietmonate(m.id, 2005)/36) FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-31') AND bemerkung ILIKE '%feuer%') AS brandver,
-- Daten fuer allg. Strom
(SELECT kennung FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-31') AND bemerkung ILIKE '%strom%') AS strom_rech,
(SELECT SUM(betrag)*(mietmonate(m.id, 2005)/36) FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-31') AND bemerkung ILIKE '%strom%') AS strom,
-- Daten fuer Haftpflichtversicherung
(SELECT kennung FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-21') AND firma = 5 LIMIT 1) AS versicher_rech,
(SELECT SUM(betrag)*(mietmonate(m.id, 2005)/36) FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-31') AND firma = 5) AS versicher,
-- Daten fuer Schonsteinfeger
(SELECT kennung FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-21') AND firma = 6) AS schornst_rech,
(SELECT SUM(betrag)*(mietmonate(m.id, 2005)/36) FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-31') AND firma = 6) AS schornst,
-- Daten fuer Rechnung von der Stadt
(SELECT kennung FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-21') AND firma = 8 group by kennung) AS stadt_rech,
(SELECT SUM(betrag) FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-31') AND firma = 8) AS stadt,
-- Daten von den Wasseruhren
(SELECT SUM(interval) FROM verbrauch WHERE mieter = m.id AND ablesedatum BETWEEN '2004-12-01' AND '2005-12-21' AND verbrauch = 1) AS wasserinterv,
(SELECT SUM(differenz) FROM verbrauch WHERE mieter = m.id AND ablesedatum BETWEEN '2005-01-01' AND '2005-12-31' AND verbrauch = 1) AS wasserverbr,
-- Grundsteuer
(SELECT SUM(wert)*-1 FROM konto where bemerkung ilike '%grund%' and bemerkung ilike '%stadt borken%' and buchdatum between '2005-01-01' and '2005-12-31') as grundsteuer,
-- die Summe enthaelt auch Muelltonne.
(select sum(betrag) from rechnung where firma = 8 and bemerkung ilike '%wasser%' and haus = w.gebaeude) as wasserkosten,
(SELECT SUM(betrag) FROM rechnung WHERE haus = w.gebaeude AND umlegbar = 'TRUE' AND (bezahlt BETWEEN '2005-01-01' AND '2005-12-31')) AS gesmatkosten,
-- (select brandver+strom+versicher+schornst+stadt from abrechnung) as umlagensumme,
-- Anzahl der Monate, fuer die Abgerechnet werden soll
mietmonate(m.id, 2005) AS dauer FROM mieter AS m
INNER JOIN wohnung AS w ON m.wohnung = w.id
WHERE mietmonate(m.id, 2005) > 0 AND w.stockwerk != (SELECT id FROM klassifikation WHERE text = 'Garage')
;
COMMENT ON VIEW abrechnung IS 'Daten fuer Umlagenabrechnung.';
-- Testausgabe
SELECT * FROM abrechnung;
So läuft das Skript. Wird die Zeile
(select brandver+strom+versicher+schornst+stadt from abrechnung) as ...
auskommentiert, bekomme ich die Fehlermeldung
FEHLER: Relation >>abrechnung<< existiert nicht
Vielen Dank für die Hilfe