2015-10-06 51 views
-2

MySQL數據庫報告,我怎樣才能在MySQL實現這樣的查詢結果: enter image description here構建在PHP

+0

發佈您的代碼,如果有的話。 :)歡迎來到stackoverflow。 – www139

+0

我試過這個查詢「Select e。*,a。* from employee e inner join attendance a on e.ID = a.ID where'a date between'2015-08-01'and 2015-08-30'order by e.ID ASC「,但我無法讓它顯示每個員工的出勤率。 –

+0

嘿,我爲什麼被投票!解釋 –

回答

1

首先你是預示了擺脫數據庫表中的所有員工和然後遍歷他們的ID以獲得您所需格式的出勤報告

$qry_employee = mysqli_query($connection, "SELECT employee_id FROM employee"); 
if($qry_employee) 
{ 
    if(mysqli_num_rows($qry_employee) > 0) 
    { 
     while ($employees = mysqli_fetch_array($qry_employee)) 
     { 
      $qry_attendance = mysqli_query($connection, "SELECT e.employee_id, e.employee_name, 
           a.am_id, a.am_out, a.pm_in, a.pm_out, a.ot_in, a.ot_out, a.date 
           FROM employee e 
           JOIN attendance a ON e.ID = a.ID 
           WHERE a.date BETWEEN '2015-08-01' AND 2015-08-30' 
           AND e.employee_id = ".$employees['employee_id']." 
           ORDER BY e.ID ASC"); 

      // your report generation here 
     } 
    } 
    else 
    { 
     echo "No result found to display."; 
    } 
} 
+0

感謝您的回覆..我會嘗試你的代碼。 –

0
SELECT `DATE`,`am IN`,`am OUT`,`pm IN`,`pm OUT`,`OT IN`,`OT OUT` 
FROM `EMPLOYEE ATTENDANCE LOGS` 
WHERE `ID No.` = '3' 
AND `Dept.` = `ADMIN/OFFICE` 
AND `Name` = 'GOJO CRUZ, CHARLOTTE' 
+0

你的回答只會產生一個員工,我需要我提到的格式的每個部門的所有員工。 –

0

Andrews答案。您只能看到一個員工的原因是因爲在他的查詢中,ID號= 3.

要爲所有員工生成此列表,您需要一個員工標識列表,併爲他們每個人運行此查詢。

作爲替代方案,你可以在應用程序代碼中不進行身份限制運行它,但你必須按ID數據,然後