1

我正在尝试对 SQL 数据库中的多个字段求和。这些字段被称为第 1 周到第 13 周,因为它们存储每周的结果。我现在有这个但是它没有输出任何东西,任何帮助将不胜感激。干杯

<?php
            if ($resultsRows == 0){
            echo '<p> No results have been listed for you yet. </p>';
            }
            if ($resultsRows > 0){              
            $qrytotalresult = "SELECT SUM(week1 + week2 + week3 + week4 + week5 + week6 + week7 + week8 + week9 + week10 + week11 + week12 + week13) FROM results WHERE username = '$username'";
            $TotalResult = mysql_query($qrytotalresult);
            return $TotalResult;

            }
        ?>
4

3 回答 3

2

SUM()是一个聚合函数,用于添加行。要添加列,只需使用+,但请注意,如果任何列为 NULL,您可能无法获得预期的结果。

SELECT IFNULL(week1, 0) + IFNULL(week2, 0) + IFNULL(week3, 0) AS sumweeks //etc
于 2012-05-29T05:52:20.820 回答
0
SELECT week1 + week2 + week3 + week4 + week5 + week6 + week7 + week8 + week9 + 
week10 + week11 + week12 + week13 as sumweeks 
FROM results WHERE username = '$username'

就足够了

于 2012-05-29T05:51:45.713 回答
0
 SELECT SUM(week1) + SUM(week2) + SUM(week3) + SUM(week4) + SUM(week5) +  
        SUM(week6) + SUM(week7) + SUM(week8) + SUM(week9) + SUM(week10) +  
        SUM(week11) + SUM(week12) + SUM(week13) 
 FROM results 
 WHERE username = '$username' 
 group by username

这应该可以解决问题。 (假设:每个用户有多行。如果每个用户只有一行,那么 sum 函数和 group by 子句可以省略)

于 2012-05-29T05:54:00.003 回答