#Parameter1:Datum von:datetime:now #Parameter2:Datum bis:datetime:now drop table if exists tmp1; drop table if exists tmp2; drop table if exists tmp3; drop table if exists tmp4; /*Summe der Zahlungen für 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 (nrkonto = 14) and (valuta >= '#Parameter1') AND (valuta <= '#Parameter2') and (zahlung.nrfaktura <> 0) and zahlung.status=0 GROUP BY zahlung.Nrfaktura, faktura.Total ORDER BY valuta DESC); /*Unvollständige Zahlungen löschen*/ 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, 000000.00 as Prozent, 000000.00 as TeilbetragProzent, 000000.00 as Leistungen, 000000.00 as ZuZahlen1, 000000.00 as Vorauszahlung 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-Dünner" where behandler="Dominique Terlinden-Dünner"; update tmp2 set vorauszahlung = (select sum(betrag) from zahlung where vorauszahlung=1 and status=1 and Nrbehandlung=tmp2.Nrbehandlung); update tmp2 set prozent = 100/(leistungen_4000_Total+leistungen_Rest+vorauszahlung)*leistungen_4000_Total; update tmp2 set TeilbetragProzent=100/leistungen_4000_Total*fakturatotal+vorauszahlung; update tmp2 set Leistungen=leistungen_4000_Behandler/28*100; update tmp2 set zuzahlen1 =0.00; update tmp2 set ZuZahlen1 = leistungen/100*TeilbetragProzent*.28; update tmp2 set ZuZahlen1 = leistungen_4000_Behandler where teilbetragProzent>100; /*update tmp2 set leistungen_4000_Behandler = (leistungen_4000_Total+leistungen_Rest) where leistungen_4000_Behandler>0;*/ select * from tmp2 where leistungen_4000_Behandler>0;