Programm_Wirl/Jahresbewertung_SQL.sql
2025-04-28 08:31:23 +02:00

47 lines
3.4 KiB
SQL

SELECT jahresumsaetze.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,
jahresumsaetze.jahr,
jahresumsaetze.umsatz,
CASE
WHEN kunde.bettenanzahl = 0::numeric THEN 0::double precision
ELSE jahresumsaetze.umsatz / kunde.bettenanzahl::double precision
END AS umsatz_pro_gast,
CASE
WHEN kunde.bettenanzahl = 0::numeric THEN 0::double precision
ELSE katkostenjejahr.kat1 * '-1'::integer::double precision * jahresumsaetze.umsatz / 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 (katkostenjejahr.kat2 / bettenanzahl.mietbetten::double precision + katkostenjejahr.kat0 / bettenanzahl.gesamtbetten::double precision) * '-1'::integer::double precision
ELSE katkostenjejahr.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 jahresumsaetze.umsatz / kunde.bettenanzahl::double precision - (katkostenjejahr.kat1 * '-1'::integer::double precision * jahresumsaetze.umsatz / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision + (katkostenjejahr.kat2 / bettenanzahl.mietbetten::double precision + katkostenjejahr.kat0 / bettenanzahl.gesamtbetten::double precision) * '-1'::integer::double precision)
ELSE jahresumsaetze.umsatz / kunde.bettenanzahl::double precision - (katkostenjejahr.kat1 * '-1'::integer::double precision * jahresumsaetze.umsatz / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision + katkostenjejahr.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 (jahresumsaetze.umsatz / kunde.bettenanzahl::double precision - (katkostenjejahr.kat1 * '-1'::integer::double precision * jahresumsaetze.umsatz / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision + (katkostenjejahr.kat2 / bettenanzahl.mietbetten::double precision + katkostenjejahr.kat0 / bettenanzahl.gesamtbetten::double precision) * '-1'::integer::double precision)) * kunde.bettenanzahl::double precision
ELSE (jahresumsaetze.umsatz / kunde.bettenanzahl::double precision - (katkostenjejahr.kat1 * '-1'::integer::double precision * jahresumsaetze.umsatz / gesamtumsatz.umsatz / kunde.bettenanzahl::double precision + katkostenjejahr.kat0 / bettenanzahl.gesamtbetten::double precision * '-1'::integer::double precision)) * kunde.bettenanzahl::double precision
END AS erfolg_gesamt
FROM kundenverwaltung.kunde,
kundenverwaltung.jahresumsaetze,
kundenverwaltung.katkostenjejahr,
kundenverwaltung.bettenanzahl,
kundenverwaltung.gesamtumsatz
WHERE gesamtumsatz.jahr = jahresumsaetze.jahr AND katkostenjejahr.jahr = jahresumsaetze.jahr AND jahresumsaetze.kunde_id = kunde.kunde_id
ORDER BY kunde.kunde_id, jahresumsaetze.jahr;