0

こんにちは、mysql の問題を簡単に解決しました。この現在のクエリを取得しました

SELECT stafflist.id, stafflist.full_name, (wages.wage /5) * stafflist.avgworkingdays AS workingwage ,
count(sick.d) AS DaysOffSick, variables.value AS VAT, count(hols.d) AS Prebooked_Holidays,


((((wages.wage /5) * stafflist.avgworkingdays)/stafflist.avgworkingdaysmonth)*count(sick.d)) AS daysoffsickvalue,
((((((wages.wage / 5) * stafflist.avgworkingdays) * 3 ) /100) * (100 + variables.value))/ (stafflist.avgworkingdaysmonth)) * (stafflist.avgworkingdaysmonth 
- count(hols.d)) AS Commision_target_After_Holidays

from stafflist 

LEFT JOIN wages ON wages.wagesid = stafflist.WageGrade
LEFT JOIN variables ON variables.company=stafflist.company and variables.name = 'VAT'
LEFT JOIN off AS sick ON sick.StaffMember = stafflist.id and sick.isitsick=1 AND sick.addedtowages=0
LEFT JOIN off As hols ON hols.StaffMember = stafflist.id and hols.isitsick=0 AND hols.addedtowages=0 AND hols.m = MONTH(now()) -1 AND hols.prebooked=1
WHERE stafflist.id = 48
GROUP By stafflist.full_name

問題は、病気としてマークされた日数と休日としてマークされた日数をカウントしたいのですが、一度オフテーブルに参加して、それを hols と名付けます。フィールド daysoffsick は、休日としてマークされた日をプルします。

これで私を助けてくれませんか

よろしくシェーン

4

1 に答える 1

1

ちょっと遅いですが、従業員ごとにグループ化された病気の休暇と予定された休日の日数を簡単に数えたいだけです。あなたがする必要があるのは、左結合にサブクエリを入れることです。必要なデータとクエリの一部を含む、より単純なテーブルを用意しました。

http://sqlfiddle.com/#!2/8a73c/13

残りのクエリをまとめるのはあなた次第ですが、これがあなたが求めているものだと思います

于 2012-05-04T23:13:15.453 に答える