Hi to all,
I created the following view in mysql and integrated the view as table in phprunner.
[codebox]CREATE View mysql.monatsauswertung AS
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname,
mitarbeiter.Vorname,
mitarbeiter.Kostenstelle,dayname(stunden.datum) AS Tag,
stunden.Datum As Datum,
Kalender.Periode,
'Arbeitstag' AS Kategorie,
min(stunden.anfang) AS von,
max(stunden.ende) AS bis,
if(count(stunden.Stundenanzahl)>2,
sum(Substring((stunden.Stundenanzahl),1,2)+
Format((Cast(Substring((stunden.Stundenanzahl),4,2)AS Signed))0.0166,2)),
if(count(stunden.Stundenanzahl)=2,
min(if(Substring((stunden.Stundenanzahl),1,1)not between '0' and '9',
Substring((stunden.Stundenanzahl),2,2),Substring((stunden.Stundenanzahl),1,2))+
Format((CAST(Substring((stunden.Stundenanzahl),4,2)AS SIGNED))0.0166,2))+
max(if(Substring((stunden.Stundenanzahl),1,1)not between '0' and '9',Substring((stunden.Stundenanzahl),2,2),
Substring((stunden.Stundenanzahl),1,2))+
Format((CAST(Substring((stunden.Stundenanzahl),4,2)AS SIGNED))0.0166,2)),
if(Substring((stunden.Stundenanzahl),1,1)not between '0' and '9',Substring((stunden.Stundenanzahl),2,2),
Substring((stunden.Stundenanzahl),1,2))+if(Substring((stunden.Stundenanzahl),1,1
)not between '0' and '9',
Format((CAST(Substring((stunden.Stundenanzahl),5,2)AS SIGNED))0.0166,2),
Format((CAST(Substring((stunden.Stundenanzahl),4,2)AS SIGNED))*0.0166,2)))) AS Gesamtstunden,
reise.Reisezeit,
reise.Reiseoption,
.....
from mysql.stunden
inner join mysql.kalender on kalender.datum=stunden.datum
inner join mysql.mitarbeiter on mitarbeiter.Stammnummer=stunden.Stammnummer
left outer join mysql.reise on reise.Stammnummer=stunden.Stammnummer and reise.Datum=stunden.Datum
where stunden.datum=stunden.datum
group by stunden.datum, stunden.Stammnummer
union
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname,
mitarbeiter.Vorname,
mitarbeiter.Kostenstelle,
dayname(ueberstunden.datum) AS Tag,
ueberstunden.Datum As Datum,
Kalender.Periode,
'Überstunden abgefeiert' AS Kategorie,
'---' AS von,
'---' AS bis,
0 AS Gesamtstunden,
'---' As Reisezeit,
'---' As Reiseoption,
if(mitarbeiter.Wochenarbeitsstunden='35',-7,if(mitarbeiter.Wochenarbeitsstunden='40',-8,
if(mitarbeiter.Wochenarbeitsstunden='30',-6,if(mitarbeiter.Wochenarbeitsstunden='25',-5,-4)))) As Ueberstunden,
0 AS 'Zuschlag25',
0 AS 'Zuschlag50',
0 As 'Zuschlag70'
from mysql.kalender, mysql.ueberstunden, mysql.mitarbeiter
where kalender.datum=ueberstunden.datum and ueberstunden.Stammnummer=mitarbeiter.Stammnummer
union
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname,
mitarbeiter.Vorname,
mitarbeiter.Kostenstelle, dayname(krankheit.datum) AS Tag,
krankheit.Datum As Datum,
Kalender.Periode,
'Krankheit',
'---' AS von,
'---' AS bis,
0 AS Gesamtstunden,
'---' As Reisezeit,
'---' As Reiseoption,
0 As Ueberstunden,
0 AS 'Zuschlag25',
0 AS 'Zuschlag50',
0 As 'Zuschlag70'
from mysql.kalender, mysql.krankheit,mysql.mitarbeiter
where (kalender.datum=krankheit.datum and mitarbeiter.Stammnummer=krankheit.Stammnummer)
union
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname,
mitarbeiter.Vorname,
mitarbeiter.Kostenstelle,dayname(feiertage.Feiertag) AS Tag,
feiertage.Feiertag As Datum,
Kalender.Periode,
'Feiertag' As Kategorie,
'---' AS von,
'---' AS bis,
0 AS Gesamtstunden,
'---' As Reisezeit,
'---' As Reiseoption,
0 As Ueberstunden,
0 AS 'Zuschlag25',
0 AS 'Zuschlag50',
0 As 'Zuschlag70'
from mysql.feiertage, mysql.mitarbeiter, mysql.kalender, mysql.stunden
where feiertage.Feiertag < '2008-01-01' and feiertage.Feiertag=kalender.Datum and feiertage.Feiertag<>stunden.Datum
union
select
mitarbeiter.Stammnummer,
mitarbeiter.Nachname,
mitarbeiter.Vorname,
mitarbeiter.Kostenstelle,dayname(kalender.datum) AS Tag,
kalender.Datum AS Datum,
Kalender.Periode,
'Urlaub' As Kategorie,
'---' AS von,
'---' AS bis,
0 AS Gesamtstunden,
'---' As Reisezeit,
'---' As Reiseoption,
0 As Ueberstunden,
0 AS 'Zuschlag25',
0 AS 'Zuschlag50',
0 As 'Zuschlag70'
from mysql.kalender, mysql.mitarbeiter, mysql.urlaub, mysql.feiertage
where (kalender.datum between urlaub.von and urlaub.bis) and dayname(kalender.datum)<> 'Sunday' and dayname(kalender.datum)<>'Saturday' and kalender.datum<>feiertage.Feiertag and mitarbeiter.Stammnummer=urlaub.Stammnummer
order by Datum;[/codebox]
The select works quick when starting in mysql query directly, but when I use the php-sites created by phprunner the mysql crashes.
CPU goes to 100%... and nothing can be done anymore. It is only this one site from all sites phprunner creates. the others work fine.
Maybe somebody has the same problem... please help ...
thanks a lot.