Sobre TSqlQuery

Delphi

15/05/2006

Estou tentando fazer uma consulta sql utilizando esse componente, porem esta consulta sera feita com clausula Group by, mas ele retorna todos os registro e nao agrupa, agora se eu colocar provider+clientdaset e enviar a consulta via comandtext do clientdatset retorna os registro agrupados, tem algum macete para utilizar somente a TSqlQuery?
Abs


Felipeiw

Felipeiw

Curtidas 0

Respostas

Paullsoftware

Paullsoftware

15/05/2006

até onde eu sei, não existe segredos nenhum... comandos SQL puro...
Mostra ai como você está fazendo!
Qual banco você está usando!


GOSTEI 0
Felipeiw

Felipeiw

15/05/2006

Estou utilizando PostgreSQL:

  CdsSaldo.Close;
  CdsSaldo.CommandText := ´SELECT codpro,modelo, SUM(*) as saldo FROM cemovimentos WHERE codpro = ´+xcodpro+´ AND SUBCOD LIKE ´´´+xsubcod+´´´ AND codare = ´´4´´ AND numdoc = ´´0´´ AND datsai IS NULL GROUP BY codpro,modelo´;
  CdsSaldo.Open;


Com o ClientDatast funciona, mas somente com TSQLQuery nao funciona, ou melhor nao agrupa.

Abs


GOSTEI 0
Paullsoftware

Paullsoftware

15/05/2006

vou testar aqui e já já te dou um retorno :wink:


GOSTEI 0
Paullsoftware

Paullsoftware

15/05/2006

amigo, fiz alguns testes aqui e funcionou perfeitamente. As únicas alterações que fiz foram: mudei os campos claro, usei o meu banco de dados, não usei os paramentros diretamente na instrução SQL, passei todas como parametros via codigo a minha instrução SQL ficou assim:
SELECT CLIENTE, LOCATARIO, COUNT(*) AS LOCACOES FROM TOP_CLIENTES
WHERE CLIENTE<>0
GROUP BY CLIENTE, LOCATARIO
ORDER BY 3 DESC


aqui funcionou normal, veja uma image do sistema que fiz:
faz um teste, usa paramentros na pesquisa pra ver, porém realmente tem coisas que fazendo diretamente no CDS funcionam melhor do que fazendo na Query... :wink: espero ter ajudado


GOSTEI 0
Cac2000

Cac2000

15/05/2006

Porque ´SUM(*)´??? Não devia ser SUM(alguma_coluna) ????


GOSTEI 0
Felipeiw

Felipeiw

15/05/2006

Caro amigo, agradeço por demais sua ajuda, mas nao entendo aqui nao funciona, fiz um select simples como segue abaixo, sem necessidade de parametros e nao funciona.

SELECT codpro,modelo, COUNT(*) as saldo FROM cemovimentos
GROUP BY codpro,modelo


Lembrando estou utilizando Postgresql, delphi 7


GOSTEI 0
Paullsoftware

Paullsoftware

15/05/2006

Caro amigo, agradeço por demais sua ajuda, mas nao entendo aqui nao funciona, fiz um select simples como segue abaixo, sem necessidade de parametros e nao funciona.
SELECT codpro,modelo, COUNT(*) as saldo FROM cemovimentos
GROUP BY codpro,modelo
Lembrando estou utilizando Postgresql, delphi 7


não sei se tem algo haver mais aqui uso IB/FB com Delphi 7 e DbExpress


GOSTEI 0
POSTAR