这是我想要获取每个日期的NO_OF_CTN总值的代码。我使用json来获取总和值。但是我该如何区分每一天的价值,以防止它们总和。
<?php
include '../includes/db_conn.php';
$final_query = "SELECT DATE, NO_OF_CTN
FROM `material_dtl_tbl` WHERE
`material_dtl_tbl`.`DATE` BETWEEN '2018-11-01%'
AND '2018-11-03%' GROUP BY STOCK_CODE ORDER BY DATE ASC
";
$rsEventList = mysqli_query($con, $final_query) or die(mysqli_error($con));
$data_array = array();
while ($row = mysqli_fetch_assoc($rsEventList)) {
$data_array[] = array("date" => $row['DATE'],"num" => $row['NO_OF_CTN'],);
}
?>
<script type="text/javascript">
var total = 0;
var data = <?php echo json_encode($data_array)?>;
for($i = 0; $i < data.length ; $i++){
total += parseInt(data[$i].num);
}
document.write(total);
</script>
使用这种方式,我能够获得nov 1与nov 3的总和,但我想获得nov 1,nov 2,nov 3的总价值,而不是3天的总价值。 有什么方法可以实现? 谢谢
答案 0 :(得分:0)
您可以单独使用SQL来实现
$final_query = "SELECT DATE as date, sum(NO_OF_CTN) as num
FROM `material_dtl_tbl` WHERE
`material_dtl_tbl`.`DATE` BETWEEN '2018-11-01'
AND '2018-11-03' GROUP BY STOCK_CODE, DATE
ORDER BY DATE ASC
";
$rsEventList = mysqli_query($con, $final_query) or die(mysqli_error($con));
$data_array = array();
while ($row = mysqli_fetch_assoc($rsEventList)) {
$data_array[] = $row;
}
这将汇总用日期和STOCK_CODE分隔的NO_OF_CTN。您不必自己遍历数组,因此可以提高性能。
答案 1 :(得分:0)
由于您似乎并不在乎纸箱上的#include "source.h"
Just::Just()
{
std::cout << "It Works!" << std::endl;
}
,而只想获取每天的纸箱总数,因此应从STOCK_CODE
中删除STOCK_CODE
并将其替换为GROUP BY
。您还需要从与以下内容进行比较的DATE
中删除%
:
DATE
请注意,如果您的$final_query = "SELECT `DATE`, NO_OF_CTN
FROM `material_dtl_tbl`
WHERE `DATE` BETWEEN '2018-11-01' AND '2018-11-03'
GROUP BY `DATE`
ORDER BY `DATE` ASC
";
列是DATE
或TIMESTAMP
列,则应使用DATETIME
将其转换为日期。