1 回答

TA貢獻1785條經(jīng)驗 獲得超8個贊
您應(yīng)該聯(lián)接表并對所有員工和一個月中的所有天執(zhí)行單個查詢,而不是為每個員工和日期執(zhí)行單獨的查詢。
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)月的日期時,請從當(dāng)前日期中減去上一個日期。如果差值大于 1,則在行中插入列以顯示缺失。$difference - 1<td>A</td>
或者,請參閱從日期范圍生成天數(shù)。可以使用這些技術(shù)之一創(chuàng)建生成月份中所有日期的子查詢。左邊用這個連接表,你會得到每天的行,但如果它們不存在,你會得到行。employee_attendancea.AttendanceNULL
- 1 回答
- 0 關(guān)注
- 106 瀏覽
添加回答
舉報