我的 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.... if else.. 但结果仍然一样。 如果没有要返回的行,如何显示输出“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
这是我使用过的逻辑之一,但没有返回我想要的结果::
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天。@__@