Fórum duvida com sum sql #352784
31/01/2008
0
ola pessoal beleza,
to com uma duvida em uma consulta sql, vejam:
select usuario.nome,(vendas.totalgeral)maiorvenda,itemvenda.preco_custo custo,
itemvenda.vl_unitario venda,(itemvenda.vl_unitario) - (itemvenda.preco_custo)lucroBruto
from usuario, vendas,itemvenda
where vendas.usuario_id = usuario.usuario_id
and vendas.codvenda = itemvenda.codvenda
and vendas.totalgeral like ´¬1902¬´
group by usuario.nome,itemvenda.vl_unitario,itemvenda.preco_custo,vendas.totalgeral
este é o resultado:
nome codvenda totalgeral preo_custo vl_untitario lucro_bruto
AMANDA 183512 1902,55 6,36 12,5 6,14
AMANDA 183512 1902,55 260,02 350 89,98
AMANDA 183512 1902,55 470 750,05 280,05
AMANDA 183512 1902,55 563 790 227
bem esta é uma vvenda da amanda, só que eu tentei somar o preço de custo de todos os itens pra saber o preço de custo geral desta venda com sum, e também o lucro bruto total. eu tenho que exibir num relatório deste jeito:
amanda 1111111 555555 232333 555555 323222
não to sabendo exibir esta venda uma unoca vez com os valores somados, quando tento somar, da resultados nada a ver.
to com uma duvida em uma consulta sql, vejam:
select usuario.nome,(vendas.totalgeral)maiorvenda,itemvenda.preco_custo custo,
itemvenda.vl_unitario venda,(itemvenda.vl_unitario) - (itemvenda.preco_custo)lucroBruto
from usuario, vendas,itemvenda
where vendas.usuario_id = usuario.usuario_id
and vendas.codvenda = itemvenda.codvenda
and vendas.totalgeral like ´¬1902¬´
group by usuario.nome,itemvenda.vl_unitario,itemvenda.preco_custo,vendas.totalgeral
este é o resultado:
nome codvenda totalgeral preo_custo vl_untitario lucro_bruto
AMANDA 183512 1902,55 6,36 12,5 6,14
AMANDA 183512 1902,55 260,02 350 89,98
AMANDA 183512 1902,55 470 750,05 280,05
AMANDA 183512 1902,55 563 790 227
bem esta é uma vvenda da amanda, só que eu tentei somar o preço de custo de todos os itens pra saber o preço de custo geral desta venda com sum, e também o lucro bruto total. eu tenho que exibir num relatório deste jeito:
amanda 1111111 555555 232333 555555 323222
não to sabendo exibir esta venda uma unoca vez com os valores somados, quando tento somar, da resultados nada a ver.
Etspaz
Curtir tópico
+ 0
Responder
Posts
31/01/2008
Djjunior
tente algo do tipo
é só acertar os joins e tal... mas a idéia básica seria isso ai.
select usuario.nome, maiorvenda itemvenda.preco_custo custo, itemvenda.vl_unitario venda, (itemvenda.vl_unitario) - (itemvenda.preco_custo)lucroBruto , seila from usuario, vendas, itemvenda, (select usuario_id, max(vendas.totalgeral) as maiorVenda, sum((itemvenda.vl_unitario) - (itemvenda.preco_custo)) as seila from vendas s group by usuario_id ) m where vendas.totalgeral like ´¬1902¬´ ) m where vendas.usuario_id = usuario.usuario_id and M.usuario_id = usuario.usuario_id and vendas.codvenda = itemvenda.codvenda and vendas.totalgeral like ´¬1902¬´ group by usuario.nome,itemvenda.vl_unitario,itemvenda.preco_custo,vendas.totalgeral
é só acertar os joins e tal... mas a idéia básica seria isso ai.
Responder
Gostei + 0
01/02/2008
Etspaz
aeh blz djjunior, primeiro obrigado por ter cedido uma parte do seu tempo para me ajudar!
bem eu fiz algumas alterações e ficou quase como eu quero.
só que aí eu indiquei o cod da venda, neste caso o max(vendas.totalgeral) está inutol, porém no sistema vai ter como parametros só o usuario_id ,periodo(data), não vai ter o cod da venda .
esta query deve funcionar sem o cod da venda, mas quando tiro-o, só o maiorvenda vem certo,
já a qtde de itens, lucro bruto ,percentual de lucro vem com valores bem mais altos do que deveria.
parece-me que está trazendo o valor da maior venda, mas no calculo da quantidade, lucro etc está adicionando valores de outros registros.
acho que falta alguma coisa nos joins, mas não to conseguindo sacar o q.
vlw
bem eu fiz algumas alterações e ficou quase como eu quero.
select usuario.nome, max(vendas.totalgeral)maior_venda, sum(itemvenda.qtde)ITENS, sum(itemvenda.preco_custo * itemvenda.qtde)custo, max(vendas.totalgeral) - sum(itemvenda.qtde * itemvenda.preco_custo)lucro, ((max(vendas.totalgeral) - sum(itemvenda.qtde * itemvenda.preco_custo))* 100)/ (sum(itemvenda.qtde * itemvenda.preco_custo))percentual_lucro from usuario,vendas, itemvenda where vendas.usuario_id = usuario.usuario_id and itemvenda.codvenda = vendas.codvenda and usuario.usuario_id = 46 and vendas.codvenda = 182324 and vendas.dtvenda between ´01.11.2007´ and ´30.11.2007´ group by usuario.nome
só que aí eu indiquei o cod da venda, neste caso o max(vendas.totalgeral) está inutol, porém no sistema vai ter como parametros só o usuario_id ,periodo(data), não vai ter o cod da venda .
esta query deve funcionar sem o cod da venda, mas quando tiro-o, só o maiorvenda vem certo,
já a qtde de itens, lucro bruto ,percentual de lucro vem com valores bem mais altos do que deveria.
parece-me que está trazendo o valor da maior venda, mas no calculo da quantidade, lucro etc está adicionando valores de outros registros.
acho que falta alguma coisa nos joins, mas não to conseguindo sacar o q.
vlw
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)