У меня есть 3 таблицы из базы данных Microsoft Access, которые я хочу запросить. Но мне удается запросить только 2 таблицы, что проще, потому что в этих 2 таблицах есть связь между первичным ключом и внешним ключом.
Таблица tblEmployee
Employee ID | Employee Name | Department ID |
1 | A | AS1 |
2 | B | CEO |
3 | C | AS2 |
Таблица столов
Department ID | Department |
CEO | Chairman |
AS1 | Assistant1 |
AS2 | Assistant2 |
Таблица tblPAyTransTemp
Employee ID | Payment |
1 | 50.00 |
2 | 80.00 |
3 | 30.00 |
Вот мой код:
$sql = "SELECT `Employee ID` AS `No`,
(
SELECT `Employee Name`
FROM `tblEmployee`
WHERE `Employee ID` = tblPAyTransTemp.`Employee ID`
) AS `Name`,
(
SELECT `Department`
FROM `tblDepartment`
WHERE `Department ID` = tblEmployee.`Department ID`
) AS `Department`,
`Payment`
FROM `tblPAyTransTemp`
WHERE `Month` ='$month' AND `Year` ='$year'
ORDER BY `Employee ID` ASC";
if ($result = $connectdb->query($sql))
{
$totalPayment = 0;
echo '<table>'
. '<th>No</th>'
. '<th>Name</th>'
. '<th>Department</th>'
. '<th>Payment</th>'
. '</tr>';
foreach ($result->fetchAll(PDO::FETCH_ASSOC) as $row)
{
echo '<tr>'
. '<td>' . $row["No"] . '</td>'
. '<td>' . substr($row["Name"], 0, 50) . '</td>'
. '<td>' . $row["Department"] . '</td>'
. '<td>' . number_format((float)$row["Payment"], 2, '.', '') . '</td>'
. '</tr>';
$totalPayment += $row["Payment"];
}
echo '<tr>'
. '<td colspan="3">Total</td>'
. '<td>' . number_format((float)$totalPayment, 2, '.', '') . '</td>'
. '</tr>'
. '</table>';
}
Как отобразить вот так?
No | Name | Department | Payment |
2 | B | Chairman | 80.00 |
Assistant | |<---subheader for each department
1 | A | Assistant1 | 50.00 |< list of subheader
3 | C | Assistant2 | 30.00 |< list of subheader
Total | 160.00 |