CLAUSULA HAVING

3LTON 24/08/2007 10:49:32
#232535
Mas n tem ORDER BY, é GROUP BY
USUARIO.EXCLUIDOS 24/08/2007 11:03:31
#232540
3LTON, faça o teste com a query(exatamente como está postado) abaixo e veja se dá certo:


sql = "SELECT TBDUPLICATAS.CODCLIENTE,SUM(TBDUPLICATAS.VALOR) AS SOMA FROM TBDUPLICATAS WHERE TBDUPLICATAS.CODCLIENTE = " & CodigoCliente & _ " ORDER BY 1 GROUP BY TBDUPLICATAS.CODCLIENTE"
3LTON 24/08/2007 11:08:03
#232542
o order by n precisa.
USUARIO.EXCLUIDOS 24/08/2007 11:09:42
#232543
Deu certo?
3LTON 24/08/2007 11:15:14
#232545
n deu
USUARIO.EXCLUIDOS 24/08/2007 11:18:29
#232547
Ok, mas que erro que dá? vc postou exatamente a query que postei?
3LTON 24/08/2007 11:23:56
#232550
sim. o erro e o seguinte:

O item nao pode ser encontrado na colecao correspondente ao nome ou ao ordinal solicitado.
USUARIO.EXCLUIDOS 24/08/2007 11:25:07
#232552
3LTON

o Having não pode ser utilizado para vc fazer filtro pelo código do cliente...
o having é como um Where porém para a coluna onde vc faz a soma dos valores, no caso vc teria que filtro por exemplo

having SUM(TBDUPLICATAS.VALOR) >10 or <100... por isso ele esta dando aquele erro
USUARIO.EXCLUIDOS 24/08/2007 11:26:50
#232553
Você não precisa, e nem pode colocar o GROUP BY por um campo que esta na clausula WHERE

Se quer pegar o total só de um cliente ficaria

SELECT SUM(VALOR) AS SOMA FROM TBDUPLICATAS WHERE CODCLIENTE = " & CodigoCliente

No caso não teria nem porque colocar o CODCLIENTE no SELECT, ja que você ja sabe ele, tudo que precisa é do valor total
USUARIO.EXCLUIDOS 24/08/2007 11:28:41
#232555
Então troque o (ORDER BY 1) por (ORDER BY TBDUPLICATAS.CODCLIENTE)
Página 2 de 3 [24 registro(s)]
Tópico encerrado , respostas não são mais permitidas