带有子查询和分组的php mysql查询

时间:2013-08-10 13:12:51

标签: php mysql subquery

我正在尝试使用查询中的信息填充表格,但我收到错误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)而没有子查询!

3 个答案:

答案 0 :(得分:0)

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

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

200美元的语法不正确。

答案 1 :(得分:0)

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

GROUP BY jp.ARTNUM, jp.BEZEICHNUNG, SUM(jp.MENGE), RDATUM

答案 2 :(得分:0)

更改选择列表中的此项目以获得名称:

SUM(jp.MENGE)
像这样:

SUM(jp.MENGE) AS SUM_MENGE

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

 echo $row['SUM_MENGE'];

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