2016-07-19 3 views
0

SQL과 PHP 쿼리에 문제가있어서 도움을 줄 수 있는지 알고 싶었습니다. 각 벤더의 판매 대수를 더해야하기 때문에 표시 할 레코드 수를 제한하고 있습니다. 증거는 데이터베이스에 수백 개의 레코드가 있기 때문입니다. 나는이 오류가 발생합니다 :PHP와 SQL 쿼리

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

내가 인터넷에 있지만하여 기능 그룹과 그룹에 시도에 많이 검색, 여전히 날 같은 오류를 제공합니다. 내 코드의 일부를 남겨두고 있습니다. 도움을 요청하고 사전에 감사 할 수 있기를 바랍니다. 단지 VEN_LLAVE, VEN_NOMBRE을 포함에

<?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

질문에 올바른 DBMS 태그를 사용하면 더 빠른 결과를 얻을 수 있습니다. – BJones

+0

GROUP BY를 사용하려고 시도한 곳이 표시되지 않습니다. – showdev

+0

당신의 도움에 감사 드리며 변경했습니다 – Byte

답변

0

다시 말하지만, 나는 GROUP BY 절을 수정했습니다. SUM()으로 집계되기 때문에 VDOC_UDS이 필요하지 않습니다.

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

예 bro :/같은 두 가지 오류. 그것은 무엇 일 수 있 었는가? – Byte