1

SQL データベース内のいくつかのフィールドを合計しようとしています。フィールドは、各週の結果を格納するため、week1 から week 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

これでうまくいくはずです。 (仮定: ユーザーごとに複数の行があります。各ユーザーが行を 1 つしか持たない場合は、sum 関数と group by 句を省略できます)

于 2012-05-29T05:54:00.003 に答える