【问题标题】:For each new year from date straing PHP MySQL [duplicate]从日期字符串 PHP MySQL 开始的每个新年 [重复]
【发布时间】:2017-09-15 07:26:13
【问题描述】:

如何在PHPMySQL 中创建一个结果,例如显示2005 年,并对所有结果求和

示例输入

-------------------------
Date       \    Quantiti
-------------------------
12-05-2005 \      5
-------------------------
23-08-2005 \      8
-------------------------
11-02-2006 \      4
-------------------------
26-09-2006 \      2
-------------------------

示例输出

---------------------------
year    \    Total
---------------------------
2005    \     13
---------------------------
2006    \     6
---------------------------

<?php
$sql = "SELECT * FROM mytable ORDER BY date DESC"; 
$result = $conn->query($sql);

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {
        $date = $row["date"];
        $quantiti = $row["quantiti"];

        // here i need code for each new year 
    }
    } else {


    }
?>

【问题讨论】:

标签: php mysql


【解决方案1】:

您可以使用GROUP BY YEAR(date) 将年份分组,SUM() 所有具有相同年份的数量。像这样的简单查询应该可以完成这项工作

SELECT SUM(Quantiti) as `total`, 
       YEAR(date) as `year` 
FROM mytable 
GROUP BY YEAR(date)

请注意,根据您的示例输出,返回结果名为 totalyear

【讨论】:

    【解决方案2】:

    您可以使用 SUM 来汇总数量,使用 GROUP BY 来按年份对结果进行分组。

    满足您需求的 sql 查询是:

    SELECT YEAR(Date), SUM(Quantiti) 
    FROM mytaple
    GROUP BY YEAR(Date)
    

    所以你的代码是:

    <?php
    $sql = "SELECT YEAR(Date) as y, SUM(Quantiti) as q FROM mytaple GROUP BY YEAR(Date)"; 
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0) {
    
        while($row = $result->fetch_assoc()) {
            $date[] = $row["y"];
            $quantiti[] = $row["q"];
        }
    for($i<0; $i<count($date);$i++) {
            echo $date[$i]."/".$quantiti[$i];
        }
        } else {
    
    
        }
    
        ?>
    

    【讨论】:

    • 感谢这个想法是“GROUP BY”。但问题是我不知道如何在我的 PHP 代码中调整它:(
    • 感谢它现在的工作,感谢它
    【解决方案3】:

    Group by With year and Month 将实现这一点

    按年(日期)、月(日期)分组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多