1 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個贊
您應(yīng)該加入這些表并對所有員工和一個月中的所有日期進(jìn)行一次查詢,而不是對每個員工和日期進(jìn)行單獨(dú)的查詢。
SELECT e.EmployeeId, e.EmployeeName, a.Date, a.Attendance
FROM employee_details AS e
JOIN employee_attendance AS a ON a.EmployeeDbKey = e.DbKey
WHERE e.DivisionDbKey = '$DivisionDbKey' and e.Status='ACTIVE'
AND a.Date BETWEEN '$Year-$Month-01' AND LAST_DAY('$Year-$Month-01') and a.Status='ACTIVE'
ORDER BY e.EmployeeName, a.Date
然后,當(dāng)您顯示表格時,<tr>
只要有$row['EmployeeId']
變化就開始一個新的。
此外,當(dāng)您循環(huán)查看員工月份中的日期時,請從當(dāng)前日期中減去前一個日期。如果差值大于 1,$difference - 1
<td>A</td>
則在行中插入列以顯示缺勤情況。
或查看從日期范圍生成天數(shù)。您可以使用其中一種技術(shù)來創(chuàng)建一個子查詢,以生成該月中的所有日期。左加入這個employee_attendance
表,你會得到每一天的行,但a.Attendance
如果NULL
他們?nèi)毕脑挕?/p>
- 1 回答
- 0 關(guān)注
- 164 瀏覽
添加回答
舉報