1 回答

TA貢獻1785條經驗 獲得超8個贊
您應該聯接表并對所有員工和一個月中的所有天執行單個查詢,而不是為每個員工和日期執行單獨的查詢。
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
然后,當您顯示表格時,請隨時更改時啟動一個新的表格。<tr>$row['EmployeeId']
此外,當您為員工循環訪問當月的日期時,請從當前日期中減去上一個日期。如果差值大于 1,則在行中插入列以顯示缺失。$difference - 1<td>A</td>
或者,請參閱從日期范圍生成天數??梢允褂眠@些技術之一創建生成月份中所有日期的子查詢。左邊用這個連接表,你會得到每天的行,但如果它們不存在,你會得到行。employee_attendancea.AttendanceNULL
- 1 回答
- 0 關注
- 107 瀏覽
添加回答
舉報