Pesquisa Sql
Por favor,
Alguém poderia me ajudar na seguinte questão:
Preciso criar uma consulta no banco de dados onde eu leia todas as vendas de todos os vendedores e calcule a comissão deles. Até ai Ok. só que nesta consulta eu tenho que agrupar por vendedor exibindo o total de cada um no período.
Alguém poderia me ajudar.
Alguém poderia me ajudar na seguinte questão:
Preciso criar uma consulta no banco de dados onde eu leia todas as vendas de todos os vendedores e calcule a comissão deles. Até ai Ok. só que nesta consulta eu tenho que agrupar por vendedor exibindo o total de cada um no período.
Alguém poderia me ajudar.
Delphijr
Curtidas 0
Respostas
Martins
16/03/2006
Por favor,
Alguém poderia me ajudar na seguinte questão:
Preciso criar uma consulta no banco de dados onde eu leia todas as vendas de todos os vendedores e calcule a comissão deles. Até ai Ok. só que nesta consulta eu tenho que agrupar por vendedor exibindo o total de cada um no período.
Alguém poderia me ajudar.
vai precisar da clausula Group By, mas primeiramente vc poderia postar o q já tem pronto, outra coisa muito importante é sempre que solicitar ajuda aqui no fórum indicar o banco de dados q está usando e se possível postar a DDL de sua tabela, para q possamos ter uma noção da estrutura da mesma e assim oferecermos uma solução mais próxima da necessitada por vc. Obrigado
GOSTEI 0
Delphijr
16/03/2006
Me perdoem, é a falta de experiência.
Eu utilizo como componente de acesso ao firebird o Dbexpress. As linhas abaixo representa a minha realidade hoje. Mas não atende as minhas necessidades. Me ajudem.
SELECT PROFISSIONAIS.nomeprof,Item_venda.vl_unit,servico.comserv,ITEM_VENDA.DATA FROM PROFissionais, item_venda,SERVICO
WHERE item_venda.codprof = profissionais.codprof AND
ITEM_VENDA.codSERV = SERVICO.CODSERV AND
ITEM_VENDA.DATA between :DTINI AND :DTFIM AND
SERVICO.COMSERV > 0
order by profissionais.nomeprof
Eu utilizo como componente de acesso ao firebird o Dbexpress. As linhas abaixo representa a minha realidade hoje. Mas não atende as minhas necessidades. Me ajudem.
SELECT PROFISSIONAIS.nomeprof,Item_venda.vl_unit,servico.comserv,ITEM_VENDA.DATA FROM PROFissionais, item_venda,SERVICO
WHERE item_venda.codprof = profissionais.codprof AND
ITEM_VENDA.codSERV = SERVICO.CODSERV AND
ITEM_VENDA.DATA between :DTINI AND :DTFIM AND
SERVICO.COMSERV > 0
order by profissionais.nomeprof
GOSTEI 0
Emerson Nascimento
16/03/2006
tente assim:
note que, se os campos numéricos contiverem algum valor NULL, o resultado pode não ser o esperado. para evitar esse tipo de problema, utilize a função coalesce(), introduzida a partir do firebird 1.5
no exemplo apresentado, o resultado será totalizado por vendedor e tipo de serviço.
espero que seja isso de que precisa...
select pfs.codprof codigo, pfs.nomeprof nome, itv.codserv, sum(itv.vl_unit * itv.quant) vendatotal, max(srv.comserv) percentualcomissao, sum(itv.vl_unit * itv.quant) * (max(srv.comserv) / 100) valorcomissao from profissionais pfs inner join item_venda itv on (itv.codprof = pfs.codprof) inner join servico srv on (srv.codserv = itv.codserv and srv.comserv > 0) where itv.data between :DTINI AND :DTFIM group by pfs.codprof, pfs.nomeprof, itv.codserv order by pfs.nomeprof, pfs.codprof
note que, se os campos numéricos contiverem algum valor NULL, o resultado pode não ser o esperado. para evitar esse tipo de problema, utilize a função coalesce(), introduzida a partir do firebird 1.5
select pfs.codprof codigo, pfs.nomeprof nome, sum(coalesce(itv.vl_unit,0) * coalesce(itv.quant,1)) vendatotal, isnull(max(srv.comserv),0) percentualcomissao, sum(coalesce(itv.vl_unit,0) * coalesce(itv.quant,1)) * (isnull(max(srv.comserv),0) / 100) valorcomissao from profissionais pfs inner join item_venda itv on (itv.codprof = pfs.codprof) inner join servico srv on (srv.codserv = itv.codserv and coalesce(srv.comserv,0) > 0) where itv.data between :DTINI AND :DTFIM group by pfs.codprof, pfs.nomeprof, itv.codserv order by pfs.nomeprof, pfs.codprof
no exemplo apresentado, o resultado será totalizado por vendedor e tipo de serviço.
espero que seja isso de que precisa...
GOSTEI 0