繁体   English   中英

计算日期范围内的天总数

[英]Count totals for days within date range

我想对任何给定的(用户选择的)日期范围,从StartDate(sDate)到EndDate(eDate),计算所有星期一,星期二等的总计。 我当前的查询显示了该范围内的所有日期,我希望它对每天的表“ count”进行总和,但是将一周中每一天的总数显示为一次。 使用图像样本,我希望我的结果是:星期一-164周二-139星期三-261等。

SQL

SELECT areaname,created, SUM(count) as totals FROM reports WHERE created 
between '".$sDate."'  AND  '".$eDate."' AND area = '".$tArea."' GROUP BY areaname, 
created ORDER BY id ASC

HTML

foreach ($counts as $row) { ?>
<tr><td><?php echo date('l',strtotime($row['reports']['created'])); ?></td>
<?php echo $row[0]['totals']; ?>
}

日期范围内的天数总和

您可以使用DATE_FORMAT()函数从给定日期获取星期几,然后可以对该日期进行分组。 语法为DATE_FORMAT(date, '%W') 所以:

SELECT areaname,
  DATE_FORMAT(created, '%W') AS weekday,
  SUM(count) AS totals
FROM reports
WHERE created BETWEEN '".$sDate."' AND '".$eDate."'
  AND area = '".$tArea."'
GROUP BY areaname, weekday
ORDER BY id

请注意,我在GROUP BY中留在areaname中,因此对于areaname / weekday每种组合,这将返回一个结果。 如果想要所有区域名称的总计,只需从GROUP BY子句中删除区域areaname

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM