【发布时间】:2016-07-19 17:08:31
【问题描述】:
我想知道他们是否可以帮助我,因为我的 sql 和 php 查询有问题,我需要添加每个供应商销售的单位数量,我限制记录的数量仅作为证据显示,因为数据库包含数百条记录。 我收到此错误:
警告:odbc_exec (): SQL 错误:[TOD] [ODBC] [GENESIS] 非聚合需要 GROUP BY 表达式。
警告:odbc_fetch_row() 期望参数 1 是资源,在
中给出布尔值
我在互联网上搜索了很多,但在尝试将它们与功能 group by 分组时,仍然给我同样的错误。 我留下了我的部分代码,希望你能帮助并提前感谢!
<?php
$sqlVend = "select top 10 VEN_LLAVE, VEN_NOMBRE, VDOC_UDS,
sum(VDOC_UDS) as suma
from VENVEN, VENDOC
where VENVEN.VEN_LLAVE = VENDOC.VDOC_VEND group by VEN_LLAVE";
$resVend = odbc_exec($cone, $sqlVend);
while (odbc_fetch_row($resVend)) {
# code...
?>
<tr>
<td><?php echo odbc_result($resVend, 'VEN_LLAVE') ?></td>
<td><?php echo odbc_result($resVend, 'VEN_NOMBRE') ?></td>
<td><?php echo odbc_result($resVend, 'suma') ?></td>
</tr>
<?php } ?>
【问题讨论】:
-
在您的问题上正确的 DBMS 标签可能会产生更快的结果。
-
我没有看到您尝试在哪里使用 GROUP BY。
-
我已经改了,谢谢你的帮助
-
如果这实际上适用于 SQL-Server,您将需要所有未聚合的列都在
GROUP BY子句中。例如GROUP BY VEN_LLAVE, VEN_NOMBRE -
@bjones,首先非常感谢您的回答。我用你的答案修改了查询,显然如果它只工作了这个需要太长时间才能显示,事实上即使它显示,因为许多记录,应该只计算前 10 名卖家的单位。你能再帮我一次吗?感谢您的帮助朋友。
标签: php sql-server database odbc