GARANTIR DESCONTO

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.


Etspaz

Etspaz

Responder

Posts

31/01/2008

Djjunior

tente algo do tipo

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.

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar