Somar duplicatas lançadas no mes total de cada cliente
Olá amigos! Tenho um sistema, simples de contas a receber! Funciona normal, imprimo boletos para mandar para o banco com ele, tudo perfeito!
Quem usa o sistema vai lançando conta todos os dias, e no final do mes emite o boleto para cobrança!
O problema é o seguinte, preciso emitir o boleto com o total de contas de cada cliente,e não de cada conta lançada!
Agora é assim, eu lanço na table de car, e filtro por data, por ex, os registros do mes, desta tabela car, e imprimo os boletos com os dados dela. Preciso emitir apenas um boleto de cada cliente. Alguem tem ideia de como fazer isso, somar os registros e salvar em uma outra tabela, contendo apenas os totais?
Pessoal, preciso da opinião e da ajuda de vocês!
Muito obrigado pela atenção novamente!
Um forte abraço a todos!
Quem usa o sistema vai lançando conta todos os dias, e no final do mes emite o boleto para cobrança!
O problema é o seguinte, preciso emitir o boleto com o total de contas de cada cliente,e não de cada conta lançada!
Agora é assim, eu lanço na table de car, e filtro por data, por ex, os registros do mes, desta tabela car, e imprimo os boletos com os dados dela. Preciso emitir apenas um boleto de cada cliente. Alguem tem ideia de como fazer isso, somar os registros e salvar em uma outra tabela, contendo apenas os totais?
Pessoal, preciso da opinião e da ajuda de vocês!
Muito obrigado pela atenção novamente!
Um forte abraço a todos!
Jorgerock
Curtidas 0
Respostas
Mvicente
04/05/2006
Bom dia amigo!
Vc pode fazer da seguinte maneira : Faça um select usando sum no campo que quer somar. Vc pode agrupar por cliente se quiser ou então passar o cliente como parâmetro. Ex:
Select sum(valor) from contas_receber where id_cliente = :pid_cliente
Dessa forma a instrução vai pegar todos os vencimentos de um determinado cliente e fazer a soma.
Espero ter ajudado!
Abraço
Marcelo
Vc pode fazer da seguinte maneira : Faça um select usando sum no campo que quer somar. Vc pode agrupar por cliente se quiser ou então passar o cliente como parâmetro. Ex:
Select sum(valor) from contas_receber where id_cliente = :pid_cliente
Dessa forma a instrução vai pegar todos os vencimentos de um determinado cliente e fazer a soma.
Espero ter ajudado!
Abraço
Marcelo
GOSTEI 0
Jorgerock
04/05/2006
Certo, com oque eu faria para agrupar os registros por cliente?
Assim: Select sum(valor) from contas_receber where id_cliente = :pid_cliente ele ira somar apenas o registro de um cliente!
Agrupado ele aparece a soma de todos os clientes?
Valeu pela atenção!
Assim: Select sum(valor) from contas_receber where id_cliente = :pid_cliente ele ira somar apenas o registro de um cliente!
Agrupado ele aparece a soma de todos os clientes?
Valeu pela atenção!
GOSTEI 0
Jorgerock
04/05/2006
Eu tentei montar a sql assim:
select sum(cardup.dpsaldo), CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO, CARDUP.DPDATAPAG, CARDUP.DPPARCELA
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
mas dá esse erro:
select sum(cardup.dpsaldo), CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO, CARDUP.DPDATAPAG, CARDUP.DPPARCELA
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
Na sql eu preciso da soma e do codigo do cliente pelo menos.
Assim ele soma e agrupa pelo codigo do cliente:
select sum(cardup.dpsaldo)
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
Preciso de uma luz!
Agradeço qualquer ajuda!
select sum(cardup.dpsaldo), CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO, CARDUP.DPDATAPAG, CARDUP.DPPARCELA
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
mas dá esse erro:
select sum(cardup.dpsaldo), CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO, CARDUP.DPDATAPAG, CARDUP.DPPARCELA
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
Na sql eu preciso da soma e do codigo do cliente pelo menos.
Assim ele soma e agrupa pelo codigo do cliente:
select sum(cardup.dpsaldo)
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
Preciso de uma luz!
Agradeço qualquer ajuda!
GOSTEI 0
Jorgerock
04/05/2006
Eu tentei montar a sql assim:
select sum(cardup.dpsaldo), CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO, CARDUP.DPDATAPAG, CARDUP.DPPARCELA
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
mas dá esse erro:
select sum(cardup.dpsaldo), CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO, CARDUP.DPDATAPAG, CARDUP.DPPARCELA
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
Na sql eu preciso da soma e do codigo do cliente pelo menos.
Assim ele soma e agrupa pelo codigo do cliente:
select sum(cardup.dpsaldo)
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
Preciso de uma luz!
Agradeço qualquer ajuda!
select sum(cardup.dpsaldo), CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO, CARDUP.DPDATAPAG, CARDUP.DPPARCELA
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
mas dá esse erro:
select sum(cardup.dpsaldo), CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO, CARDUP.DPDATAPAG, CARDUP.DPPARCELA
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
Na sql eu preciso da soma e do codigo do cliente pelo menos.
Assim ele soma e agrupa pelo codigo do cliente:
select sum(cardup.dpsaldo)
from CARDUP where CARDUP.DPCODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE group by CARDUP.DPCODIGOCLIENTE
Preciso de uma luz!
Agradeço qualquer ajuda!
GOSTEI 0
Mvicente
04/05/2006
Vc pode fazer assim:
SELECT SUM(CR.VALOR), C.ID_CLIENTE FROM
CONTAS_RECEBER CR, CLIENTES C
WHERE
CR.ID_CLIENTE = C.ID_CLIENTE
GROUP BY C.ID_CLIENTE
Não sei qual o nome de seus campos e tabelas, mas é só vc substituir pelo correspondente ao seu bd...
Assim vai dar certo, ou seja, o select vai retornar pra vc o id do cliente com a somatoria do campo valor.
Qq coisa posta aqui denovo!
Abraço!
Marcelo
SELECT SUM(CR.VALOR), C.ID_CLIENTE FROM
CONTAS_RECEBER CR, CLIENTES C
WHERE
CR.ID_CLIENTE = C.ID_CLIENTE
GROUP BY C.ID_CLIENTE
Não sei qual o nome de seus campos e tabelas, mas é só vc substituir pelo correspondente ao seu bd...
Assim vai dar certo, ou seja, o select vai retornar pra vc o id do cliente com a somatoria do campo valor.
Qq coisa posta aqui denovo!
Abraço!
Marcelo
GOSTEI 0
Jorgerock
04/05/2006
Certo, assim funciona:
SELECT SUM(cardup.dpsaldo),cliente.codigocliente FROM
cardup , CLIENTE
WHERE
cardup.dpcodigocliente = cliente.codigocliente
GROUP BY cliente.codigocliente
Ele seleciona o codigo e o total na boa. Eu não consegui puxar o nome do cliente junto, dá um erro:
SELECT SUM(cardup.dpsaldo), MAX(cardup.dpvence),cliente.codigocliente, cliente.nomecliente FROM
cardup , CLIENTE
WHERE
cardup.dpcodigocliente = cliente.codigocliente
GROUP BY cliente.codigocliente
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Preciso puxar o nome do cliente, tambem, para ficar mais facil de visualizar, pois teria que editar a data de vencimento manualmente por cliente!
Assim eu fazia meus filtros, juntando os dados das duas tabelas:
select CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO,CARDUP.DPOBS, CARDUP.DPDATAPAG, CARDUP.DPSALDO, CARDUP.DPPARCELA, CLIENTE.NOMECLIENTE, CLIENTE.CODIGOCLIENTE
from CLIENTE join CARDUP on CLIENTE.CODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE
SELECT SUM(cardup.dpsaldo),cliente.codigocliente FROM
cardup , CLIENTE
WHERE
cardup.dpcodigocliente = cliente.codigocliente
GROUP BY cliente.codigocliente
Ele seleciona o codigo e o total na boa. Eu não consegui puxar o nome do cliente junto, dá um erro:
SELECT SUM(cardup.dpsaldo), MAX(cardup.dpvence),cliente.codigocliente, cliente.nomecliente FROM
cardup , CLIENTE
WHERE
cardup.dpcodigocliente = cliente.codigocliente
GROUP BY cliente.codigocliente
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Preciso puxar o nome do cliente, tambem, para ficar mais facil de visualizar, pois teria que editar a data de vencimento manualmente por cliente!
Assim eu fazia meus filtros, juntando os dados das duas tabelas:
select CARDUP.CODIGODUP, CARDUP.DPCODIGOCLIENTE, CARDUP.DPNR, CARDUP.DPEMISSAO, CARDUP.DPVENCE, CARDUP.DPVALOR, CARDUP.DPTAXAJURO, CARDUP.DPPAGO,CARDUP.DPOBS, CARDUP.DPDATAPAG, CARDUP.DPSALDO, CARDUP.DPPARCELA, CLIENTE.NOMECLIENTE, CLIENTE.CODIGOCLIENTE
from CLIENTE join CARDUP on CLIENTE.CODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE
GOSTEI 0
Jorgerock
04/05/2006
SELECT SUM(cardup.dpsaldo) total, MAX(cardup.dpvence),cliente.nomecliente, cliente.codigocliente FROM
cardup , CLIENTE join CARDUP on CLIENTE.CODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE
WHERE
cardup.dpcodigocliente = cliente.codigocliente
GROUP BY cliente.nomecliente , cliente.codigocliente
A clausula group by precisa listar tb cliente.nomecliente!
Valeu pela ajuda Marcelo!
cardup , CLIENTE join CARDUP on CLIENTE.CODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE
WHERE
cardup.dpcodigocliente = cliente.codigocliente
GROUP BY cliente.nomecliente , cliente.codigocliente
A clausula group by precisa listar tb cliente.nomecliente!
Valeu pela ajuda Marcelo!
GOSTEI 0