0

我有以下sql代码:

$management_lcfruh_sql = "SELECT COUNT(schicht), codes.lcfruh, personal.status, dienstplan.kw, personal.perso_id, personal.sort_order, dienstplan.datum FROM dienstplan INNER JOIN codes ON dienstplan.schicht=codes.lcfruh INNER JOIN personal ON personal.perso_id=dienstplan.perso_id WHERE codes.lcfruh!='' AND personal.status='management' AND dienstplan.kw='$kw' ORDER BY personal.sort_order, dienstplan.datum";
$management_lcfruh_result= mysql_query($management_lcfruh_sql);

我怎样才能得到一个计数列表而不是一个计数,dienstplan.kw='$kw' 是一年中有七天的一周,所以我应该列出七个结果而不是所有七个的一个计数.

<?php
while($rows=mysql_fetch_array($management_lcfruh_result)){
?>
<? echo $rows['COUNT(schicht)']; ?>
<?php
}
?> 
4

1 回答 1

0

嗯,你在额外信息方面没有太大帮助,但这可能会让你朝着正确的方向前进。

给定Table1(WeekNo int, Category int, Schict int)Table2 (WeekNo int, Schict int, CategoryDate dateTime)

然后

Select t1.Catgeory, DayName(t2.CategoryDate), t1.Schict, Count(t1.schict)
From Table1 t1
Inner join Table2 t2 On t1.Schict = t2.schict and t1.WeekNo = t2.weekNo
Group by t1.Category,DayName(t2.CategoryDate), t1.Schict

会让您按类别计算并跨两个表进行统计,但您获得的记录数将取决于您在一周中有多少天有记录。

您可以在 Sql 中处理该问题,但在 PHP 中的数组客户端中填充缺失的日期会容易得多。如果您要使用 mysql DayOfWeek 函数而不是 DayName,则可能更容易。

无论如何,一些线索也许更容易简单地添加这个您不会告诉我们的日期到您当前查询的 select 子句,然后使用 PHP 来获取日期。

于 2013-09-07T13:25:35.977 回答