Я использую PHP-программирование и базу данных Microsoft Access.Оба подключены с использованием PDO.
У меня проблема с объединением значений столбца в одной таблице, если значения идентификатора сотрудника "1stHalf" или "2ndHalf" имеют значения в одном месяце и году.
Это потому, что в моей ситуации сотрудник может платить один раз в месяц или два раза в месяц.Вот почему в моей таблице есть столбцы 1-й и 2-й половин.
Но дело в том, что у меня есть только 1 столбец с именем "EPFee", и он будет объединен на основе значения "1stHalf" или "2ndHalf", независимо от того,этот месяц один раз в месяц или два раза в месяц.
Таблица, которая у меня сейчас есть:
Employee ID | 1stHalf | 2ndHalf | Month | Year | EPFee
1011 | 0 | 1 | 2 | 2017 | 15.00
1011 | 1 | 0 | 2 | 2017 | 29.00
Вывод, который я хочу:
Employee ID | 1stHalf | 2ndHalf | Month | Year | EPF1stFee | EPF2ndFee
1011 | 1 | 1 | 2 | 2017 | 29.00 | 15.00
Если значение 2ndHalf равно0 в месяце 2/2017 Результат должен быть таким:
Employee ID | 1stHalf | 2ndHalf | Month | Year | EPF1stFee | EPF2ndFee
1011 | 1 | 0 | 2 | 2017 | 29.00 | 0.00
Здесь мой код обновлен благодаря sr hs :
<?php
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Users\User\Desktop\Demo2018.mdb; Uid=; Pwd=COMPLETEPAYROLL;");
$sql = "SELECT `Employee ID`, `1stHalf`, `2ndHalf`, `Month`, `Year` FROM `tblPAyTrans` WHERE `Employee ID` = '1011' AND Month = '2' AND Year='2017'";
$result = $db->query($sql);
echo "<br>RESULT: <br><br>";
echo "<table border='2'>
<tr>
<th>Employee ID</th>
<th>1st Half</th>
<th>2nd Half</th>
<th>Month</th>
<th>Year</th>
<th>EPF1stFee</th>
<th>EPF2ndFee</th>
</tr>";
$prevEmpId = "0";
$FirstHalf = "0";
$SecondHalf = "0";
$Month = "";
$Year = "";
while ($row = $result->fetch()) {
// You can take the following three lines out of the loop, as they remain constant
$EmployeeID = $row['Employee ID'];
$Month = $row['Month'];
$Year = $row['Year'];
// Only change the value if non-zero
if ($FirstHalf === "0"){
$FirstHalf = $row['1stHalf'];
$query1 = "SELECT `EPFee` FROM `tblPAyTrans` WHERE `Employee ID` = '$EmployeeID' AND `1stHalf` = '$FirstHalf'";
$result2 = $db->query($query1);
$getVal1 = $result2->fetch();
$EPF1stFee = $getVal['EPFee'];
}
// Only change the value if non-zero
if ($SecondHalf === "0"){
$SecondHalf = $row['2ndHalf'];
$query2 = "SELECT `EPFee` FROM `tblPAyTrans` WHERE `Employee ID` = '$EmployeeID' AND `2ndHalf` = '$SecondHalf'";
$result3 = $db->query($query2);
$getVal2 = $result3->fetch();
$EPF2ndFee = $getVal2['EPFee'];
}
}
// Print the record
echo "<tr>";
echo "<td>" . $EmployeeID. "</td>";
echo "<td>" . $FirstHalf. "</td>";
echo "<td>" . $SecondHalf. "</td>";
echo "<td>" . $Month. "</td>";
echo "<td>" . $Year. "</td>";
echo "<td>" . $EP1stFee. "</td>";
echo "<td>" . $EP2ndFee. "</td>";
echo "</tr>";
echo "</table>";
?>
Любые идеи для решенияэто ??