drop table if exists tmp1;
drop table if exists tmp2;
drop table if exists tmp3;
drop table if exists tmp4;

/*Summe der Zahlungen fr eine Behandung */
create table tmp1 (SELECT 
  SUM(zahlung.Betrag) AS Zahlungsbetrag,
  zahlung.Nrfaktura,
  faktura.Total as Fakturatotal,
  '1990.01.01' as Valuta
FROM
  zahlung
  INNER JOIN faktura ON (zahlung.Nrfaktura = faktura.Nrfaktura)
WHERE
  (valuta >= '2014.08.01') AND (valuta < '2015.08.01') and
  (zahlung.nrfaktura <> 0) and zahlung.status=0
GROUP BY
  zahlung.Nrfaktura,
  faktura.Total
ORDER BY
  valuta DESC);

/*Unvollstndige Zahlungen lschen*/  
delete from tmp1 where zahlungsbetrag < fakturatotal;

update tmp1 set valuta=(select valuta from zahlung where zahlung.nrfaktura=tmp1.nrfaktura order by valuta desc limit 1);

create Table Tmp2 (
SELECT 
  faktura.Nrfaktura,
  behandlu.Nrbehandlung,
  behandlu.Behandlungsbeginn,
  behandlu.Behandlungsende,
  behandlu.Nrbehandler,
  concat(privat.name) AS Behandler,
  behandlu.Nrpatient,
  Concat(privat1.name, ' ', privat1.vorname) AS Patient,
  tmp1.Zahlungsbetrag,
  tmp1.valuta,
  tmp1.Fakturatotal,
  000000.00 as Leistungen_4000_Total,
  000000.00 as Leistungen_4000_Behandler,
  000000.00 as Leistungen_NE_Rupf,
  000000.00 as Leistungen_Rest
FROM
  tmp1
  INNER JOIN faktura ON (tmp1.Nrfaktura = faktura.Nrfaktura)
  INNER JOIN behandlu ON (faktura.Nrbehandlung = behandlu.Nrbehandlung)
  INNER JOIN privat ON (behandlu.Nrbehandler = privat.NRPRIVAT)
  INNER JOIN privat privat1 ON (behandlu.Nrpatient = privat1.NRPRIVAT)
);

update tmp2 set leistungen_4000_Total = (select sum(leistung.total) from leistung 
where leistung.nrbehandlung=tmp2.nrbehandlung and ((leistung.`SSO-Nummer` < 5000) AND (leistung.`SSO-Nummer` > 3999) or leistung.`SSO-Nummer`=7000 or leistung.`SSO-Nummer`=7997));

update tmp2 set leistungen_4000_Behandler = (select sum(leistung.total)*0.28 from leistung 
where leistung.nrbehandler=5305 and leistung.nrbehandlung=tmp2.nrbehandlung and ((leistung.`SSO-Nummer` < 5000) AND (leistung.`SSO-Nummer` > 3999) or leistung.`SSO-Nummer`=7000 or leistung.`SSO-Nummer`=7997));

update tmp2 set leistungen_ne_rupf = (select sum(leistung.total) from leistung 
where leistung.nrbehandler<>5305 and leistung.nrbehandlung=tmp2.nrbehandlung and ((leistung.`SSO-Nummer` < 5000) AND (leistung.`SSO-Nummer` > 3999) or leistung.`SSO-Nummer`=7000 or leistung.`SSO-Nummer`=7997));

update tmp2 set leistungen_Rest = (select sum(leistung.total) from leistung 
where leistung.nrbehandlung=tmp2.nrbehandlung and ((leistung.`SSO-Nummer` < 4000) or (leistung.`SSO-Nummer` > 4999) and leistung.`SSO-Nummer` <> 7000 and leistung.`SSO-Nummer`<>7997));

update tmp2 set behandler = "Terlinden-Dnner" where behandler="Dominique  Terlinden-Dnner";
select * from tmp2 where leistungen_4000_Behandler>0;

  