2016-07-19 3 views
0

Я хотел знать, могут ли они помочь мне, потому что у меня проблема с запросом sql и php, мне нужно добавить количество единиц, проданных каждому поставщику, я ограничиваю количество записей, чтобы показать их только как потому что база данных содержит сотни записей. я получаю эту ошибку:Php и sql query

Warning: odbc_exec(): SQL error: [TOD] [ODBC] [GENESIS] Non aggregates require a GROUP BY expression.

Warning: odbc_fetch_row() expects parameter 1 to be resource, boolean given in

Я искал много в интернете, но в попытке сгруппировать их с помощью функции группы по-прежнему дает мне ту же ошибку. Я оставляю часть своего кода, надеюсь, вы сможете помочь и поблагодарить заранее!

<?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 } ?> 
+0

Исправленные теги СУБД по вашему вопросу могут привести к более быстрым результатам. – BJones

+0

Я не вижу, где вы пытались использовать GROUP BY. – showdev

+0

Я изменил, спасибо за вашу помощь – Byte

ответ

0

Опять же, я изменил положение GROUP BY включать только VEN_LLAVE, VEN_NOMBRE. Вам не нужно VDOC_UDS, потому что он агрегируется с SUM().

SELECT TOP 10 VEN_LLAVE, VEN_NOMBRE, 
       SUM(VDOC_UDS) as Suma 
FROM VENVEN, VENDOC 
WHERE VENVEN.VEN_LLAVE = VENDOC.VDOC_VEND 
GROUP BY VEN_LLAVE, VEN_NOMBRE 
+0

, Еще раз спасибо, приятель. Но когда я удалил VDOC_UDS, снова появились ошибки. Я поставил код так, как вы предлагаете, и это не сработало. Вам нужно больше информации? или что я могу сделать? – Byte

+0

@Byte Получают ли вы те же две ошибки? – BJones

+0

Да, брата:/те же две ошибки. Что это может быть? – Byte