【发布时间】:2012-06-21 06:58:12
【问题描述】:
我的 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天。 @__@
【问题讨论】:
-
什么是php代码?会不会是php逻辑的问题?
-
我写了一个答案来解决SQL中的一个问题,因为你只粘贴了SQL代码。但是您的问题是 PHP/标记问题!如果没有您用来生成输出的代码,我们无法解决这个问题!
-
你也可以使用 SELECT IFNULL(my_column,0) 如果 column 的结果为空,这将产生 0
-
@raheelshan 这是我最初的答案,但因为这是一个演示问题,所以我删除了它。
-
@LiangliangZheng :我已经添加了上面的 php 代码。它不起作用。请帮忙。
标签: php sql-server