Fórum Query com fazer ? #236664
08/06/2004
0
coditem tipo(Debito ou credito) e valor
inicialmente queria somar todos os debitos e todos os creditos mas não consegui agora quero filtrar somente os Creditos e somar !
como eu faço isto ?
pois desta forma vou fazer duas query uma para credito e outra para Debito e achar o saldo ?
estou tentando isto mas esta dando erro : when group by exists, every simple field in projectors must be in group by
Qryvendacl.Close; with Qryvendacl do begin sql.clear; Sql.Add(´select movfinanceiro.*,sum(movfinanceiro.valor) as saldoc,empresa.razaosoc, planocnt.coditem, planocnt.descconta´); sql.add(´from empresa, movfinanceiro , planocnt´); Sql.Add(´WHERE (movfinanceiro.coditem = planocnt.coditem)´); sql.add(´and movfinanceiro.tipo =:C´); if (edtdatainic.Text <>´ / / ´)and (edtdatafin.text <>´ / / ´)then begin sql.add(´and datamov >= :datainicial and datamov <= :datafinal´); try Params [0].asdate := strtodate (edtdatainic.text); Params [1].asdate := strtodate (edtdatafin.text); except on econverterror do begin beep; Showmessage (´Data Inválida´); edtdatainic.setfocus; exit; end; end; end; sql.add(´GROUP BY descconta´); sql.add(´ORDER BY datamov´); end;
[b:a119dfbf45][color=red:a119dfbf45]BBCode inserido pelo Moderador (AZ)[/color:a119dfbf45][/b:a119dfbf45]
Hugofab
Curtir tópico
+ 0Posts
08/06/2004
Paulo_amorim
Quando você tem um GROUP BY, o campo que vc mostrar tem que estar no GROUP BY (exceto com SUM, ,MAX, etc...)...assim, vc não pode exibir tudo assim
o que vc pode fazer eh
SELECT * FROM ( select sum(valor) ... )
pois vc diz que seu select inicial agora eh como se fosse uma tabela pra ele...ai sim vc pode mostrar todos os campos...
Dica: se a duvida eh SQL, não poste o codigo do Delphi junto, pois atrapalha o entendimento
Espero que ajude
Até+
Gostei + 0
08/06/2004
Zunker
De uma arrumada nesse codigo, pois esta uma zona, dificil de se entender.
Gostei + 0
08/06/2004
Hugofab
from empresa, movfinanceiro , planocnt´);
WHERE movfinanceiro.coditem = planocnt.coditem and movfinanceiro.tipo = ´C´
ORDER BY datamov
eu gostaria de criar um query para gerar dois campos de saldo um de credito e outro de debito
minha tabela
codigo tipo valor
onde o tipo é ´C´ credito ou ´D´ debito
só isto mas não estou conseguindo implementar isto !!
obrigado
Gostei + 0
08/06/2004
Paulo_amorim
tente assim
SELECT descconta, SUM(valor) FROM movfinanceiro
WHERE tipo = ´C´
GROUP BY descconta
para fazer uma query que mostre ambos, tente o codigo acima, mais:
UNION
SELECT descconta, SUM(valor) FROM movfinanceiro
WHERE tipo = ´D´
GROUP BY descconta
Espero que ajude
Até+
Gostei + 0
09/06/2004
Hugofab
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)