0

我正在尝试用查询中的信息填充表格,但出现错误 500。我做错了什么?

for($count = 0; $count < $200; $count++)
    {
    $result = mysql_query("SELECT jp.ARTNUM, jp.BEZEICHNUNG, SUM(jp.MENGE), RDATUM
                        FROM journalpos jp, journal j
                        WHERE j.REC_ID=jp.JOURNAL_ID AND ARTNUM IS NOT NULL AND jp.JOURNAL_ID IN
                        (SELECT REC_ID FROM journal WHERE RDATUM BETWEEN NOW() - INTERVAL 1 DAY AND NOW() )
                        GROUP BY ARTNUM 
                        LIMIT $count , 30")
    or die(mysql_error());
    $row = mysql_fetch_array( $result );
    echo "<tr>";
    echo "<td>";
    echo $row['jp.ARTNUM'];
    echo "</td>";

    echo "<td>";
    echo $row['jp.BEZEICHNUNG'];
    echo "</td>";

    echo "<td>";
    echo $row['SUM(jp.MENGE)'];
    echo "</td>";

    echo "<td>";
    echo $row['RDATUM'];
    echo "</td>";
    echo "</tr>";
    }

它在没有 SUM 函数的情况下工作(然后我可以离开 GROUP BY)并且没有子查询!

4

3 回答 3

0

我发现的一个错误是在这一行

for($count = 0; $count < $200; $count++)

$200 的语法不正确。

于 2013-08-10T13:34:35.793 回答
0

您需要按选择中的非聚合列进行分组 - 尝试:

GROUP BY jp.ARTNUM, jp.BEZEICHNUNG, SUM(jp.MENGE), RDATUM
于 2013-08-10T15:14:16.040 回答
0

将选择列表中的此项更改为具有名称:

SUM(jp.MENGE)

像这样:

SUM(jp.MENGE) AS SUM_MENGE

然后在 PHP 的数组中使用“SUM_MENGE”,如下所示:

 echo $row['SUM_MENGE'];

我希望 MySQL 正在为其生成一个不是您正在使用的列名。通过选择列名,您可以控制它并知道它是什么。

于 2016-02-21T21:43:32.500 回答