PHP-MSSQLクエリに問題があります。次のような結果を出す必要がある結合テーブルがあります。
Department Group A Group B Total A+B
WORKHOUR A OTHOUR A WORKHOUR B OTHOUR B WORKHOUR OTHOUR
HR 10 15 25 0 35 15
IT 5 5 5 5
Admin 12 12 12 12
クエリは、指定された日付ごとに何人の従業員をカウントします(管理者はデータを入力し、送信されると、クエリは上記の結果を提供します)。
問題は、表示する行がない場合、最終的な出力が混乱することです。列が右にシフトされます。
すなわち:ITのグループAのみ管理者のグループBのみ
Department Group A Group B Total A+B
WORKHOUR A OTHOUR A WORKHOUR B OTHOUR B WORKHOUR OTHOUR
HR 10 15 25 0 35 15
IT 5 5 5 5
Admin 12 12 12 12
私の質問は、これを防ぐ方法は?私はWhileですべてを試しましたが、それ以外の場合は..結果は同じです。 返す行がない場合に出力「0」を表示するにはどうすればよいですか? エコー「0」;
これは私の質問です:
select DD.DPT_ID,DPT.DEPARTMENT_NAME,TU.EMP_GROUP, sum(DD.WORK_HOUR) AS WORK_HOUR,
sum(DD.OT_HOUR) AS OT_HOUR
FROM DEPARTMENT_DETAIL DD
left join DEPARTMENT DPT
ON (DD.DEPT_ID=DPT.DEPT_ID)
LEFT JOIN TBL_USERS TU
ON (TU.EMP_ID=DD.EMP_ID)
WHERE DD_DATE>='2012-01-01'
AND DD_DATE<='2012-01-31'
AND TU.EMP_GROUP!=2
GROUP BY DD.DEPT_ID, DPT.DEPARTMENT_NAME,TU.EMP_GROUP
ORDER BY DPT.DEPARTMENT_NAME
これは私が使用したロジックの1つですが、必要な結果が返されません::
while($row = mssql_fetch_array($displayResult))
{
if ((!$row["WORK_HOUR"])&&(!$row["OT_HOUR"]))
{
echo "<td >";
echo "empty";
echo " </td>";
echo "<td >";
echo "empty";
echo " </td>";
}
else
{
echo "<td>";
echo $row["WORK_HOUR"];
echo " </td>";
echo "<td>";
echo $row["OT_HOUR"];
echo " </td>";
}
}
助けてください。私はこれを2日間やっています。@ __ @