SELECT kunde.kunde_id, kunde.tour_id, kunde.kunde_nr, kunde.name1, kunde.name2, kunde."straße", kunde.plz, kunde.bezeichnung, kunde.land, kunde.aktiv, kunde.bettenanzahl, kunde.kunde_gruppe, kunde.service, kunde.region, kunde.waescheart, monatsumsaetze.monat, monatsumsaetze.jahr, monatsumsaetze.betrag as umsatz, CASE WHEN kunde.bettenanzahl = 0::numeric THEN 0::double precision ELSE monatsumsaetze.betrag / kunde.bettenanzahl::double precision END AS umsatz_pro_gast, CASE WHEN kunde.bettenanzahl = 0::numeric THEN 0::double precision ELSE monatskosten.kat1 * '-1'::integer::double precision * monatsumsaetze.betrag / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision END AS var_kost_anteil, CASE WHEN kunde.bettenanzahl = 0::numeric THEN 0::double precision WHEN kunde.waescheart::text = 'Miete'::text THEN (monatskosten.kat2 / bettenanzahl.mietbetten::double precision + monatskosten.kat0 / bettenanzahl.gesamtbetten::double precision) * '-1'::integer::double precision ELSE monatskosten.kat0 / bettenanzahl.gesamtbetten::double precision * '-1'::integer::double precision END AS fixkosten, CASE WHEN kunde.bettenanzahl = 0::numeric THEN 0::double precision WHEN kunde.waescheart::text = 'Miete'::text THEN monatsumsaetze.betrag / kunde.bettenanzahl::double precision - (monatskosten.kat1 * '-1'::integer::double precision * monatsumsaetze.betrag / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision + (monatskosten.kat2 / bettenanzahl.mietbetten::double precision + monatskosten.kat0 / bettenanzahl.gesamtbetten::double precision) * '-1'::integer::double precision) ELSE monatsumsaetze.betrag / kunde.bettenanzahl::double precision - (monatskosten.kat1 * '-1'::integer::double precision * monatsumsaetze.betrag / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision + monatskosten.kat0 / bettenanzahl.gesamtbetten::double precision * '-1'::integer::double precision) END AS erfolg_pro_gast, CASE WHEN kunde.bettenanzahl = 0::numeric THEN 0::double precision WHEN kunde.waescheart::text = 'Miete'::text THEN (monatsumsaetze.betrag / kunde.bettenanzahl::double precision - (monatskosten.kat1 * '-1'::integer::double precision * monatsumsaetze.betrag / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision + (monatskosten.kat2 / bettenanzahl.mietbetten::double precision + monatskosten.kat0 / bettenanzahl.gesamtbetten::double precision) * '-1'::integer::double precision)) * kunde.bettenanzahl::double precision ELSE (monatsumsaetze.betrag / kunde.bettenanzahl::double precision - (monatskosten.kat1 * '-1'::integer::double precision * monatsumsaetze.betrag / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision + monatskosten.kat0 / bettenanzahl.gesamtbetten::double precision * '-1'::integer::double precision)) * kunde.bettenanzahl::double precision END AS erfolg_gesamt FROM kundenverwaltung.kunde, kundenverwaltung.monatsumsaetze, kundenverwaltung.monatskosten, kundenverwaltung.bettenanzahl, kundenverwaltung.gesamtumsatz WHERE gesamtumsatz.jahr = monatsumsaetze.jahr AND monatskosten.jahr = monatsumsaetze.jahr AND monatsumsaetze.kunde_id = kunde.kunde_id and gesamtumsatz.monat = monatsumsaetze.monat AND monatskosten.monat = monatsumsaetze.monat ORDER BY kunde.kunde_id, jahresumsaetze.jahr;