アプリ版:「スタンプのみでお礼する」機能のリリースについて

1回のSQL文発行で、同じフィールドに対し平均(AVG)と合計(SUM)を
両方算出することはできませんよね?

以下のようにすると、「第一列」が空白で出力されてしまいます。

$sql = "SELECT AVG(MYDATA) AS AVG_MYDATA, SUM(MYDATA) AS SUM_MYDATA FROM MYTABLE";
$rst = mysql_query($sql, $con);
$recmax = mysql_num_rows($rst);
for ($recnum = 0; $recnum < $recmax; $recnum++) {
$col = mysql_fetch_array($rst);
$body = "<table border='1'>";
$body .= "<tr>";
$body .= "<td>" . $col["AVG_NYDATA"] . "</td>"; //第一列
$body .= "<td>" . $col["AVG_NYDATA"] . "</td>"; //第二列
$body .= "</tr>";
$body = "</table>";

環境:MySQL 4.0.25

A 回答 (2件)

こんにちわ。


できるはずですよ。(たぶん)

$body .= "<td>" . $col["AVG_NYDATA"] . "</td>"; //第一列
$body .= "<td>" . $col["AVG_NYDATA"] . "</td>"; //第二列

これは、AVG_MYDATAとSUM_MYDATAの間違いですよね?

で、下の結果はどうですか?
これで表示されないなら、データに平均値が出せないデータがふくまれていませんか?

SELECT AVG(MYDATA) AS AVG_MYDATA FROM MYTABLE
    • good
    • 0
この回答へのお礼

すみません、#1さんと#2さんの「SQLとして問題は見当たらない」
とするご見解の後押しをうけ、もう一度コードを見直したところ、
別に文法的タイプミスが見つかりました。

早速修正版を試したところ、きちんと動きました。

いずれにせよ、質問のようなSQLが使えることがわかっただけでも
大変収穫です。どうもありがとうございました。

お礼日時:2005/09/22 13:46

>$body .= "<td>" . $col["AVG_NYDATA"] . "</td>"; //第一列


>$body .= "<td>" . $col["AVG_NYDATA"] . "</td>"; //第二列
↑ここの $col["AVG_NYDATA"] は $col["AVG_MYDATA"]
なのでは?
MySQLはよく知らないのですが、一般的なSQL文としてはに問題があるようには思いません。
ご参考までに。

この回答への補足

すみません、そのとおりで
第二列は
$col["SUM_NYDATA"] のタイプミスです。

補足日時:2005/09/22 12:58
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!