Duvida sobre sum, multiplicacao
05/01/2005
0
Olá pessoal, tenho uma duvida pois me falaram que não é possivel fazer em uma consulta sql uma multiplicacao e um sum, tipo:
select i.codprod, p.descricao, sum(i.quantidade) total, (i.qantidade * p.valorunitario) soma
from produtos p, itens_venda i, vendas v
where
(i.codvenda = v.codvenda) and (i.codprod = p.codprod)...
É Mais ou menos isso, se alguem puder me passar um exeplo de como seria esta consulta ficaria grato!
Obs. Uso Delphi 7, Firebird -> IBexpert, Rave
select i.codprod, p.descricao, sum(i.quantidade) total, (i.qantidade * p.valorunitario) soma
from produtos p, itens_venda i, vendas v
where
(i.codvenda = v.codvenda) and (i.codprod = p.codprod)...
É Mais ou menos isso, se alguem puder me passar um exeplo de como seria esta consulta ficaria grato!
Obs. Uso Delphi 7, Firebird -> IBexpert, Rave
![Dberlese Dberlese](https://www.devmedia.com.br/imagens/fotoscolunistas/avatar/avatar-4.png)
Dberlese
Curtir tópico
+ 0
Responder
Posts
05/01/2005
Emerson Nascimento
deveria ser algo assim:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (i.qantidade * p.valorunitario) valortotal
from itens_venda i
left join produtos p on (p.codprod=i.codprod)
group by i.codprod
assim seria feita a soma de todas as suas vendas, e seria mostrado o valor total de cada produto. pode ser feito algo do tipo: preciso saber quais foram os produtos vendidos em março de 2003:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (i.qantidade * p.valorunitario) valortotal
from vendas v
left join itens_venda i on (i.codvenda = v.codvenda)
left join produtos p on (p.codprod=i.codprod)
where extract(month from v.datadavenda)=03 and extract(year from v.datadavenda)=2003
group by i.codprod
e por aí vai...
p.s: por experiência própria, sugiro que você grave o valor unitário do produto na tabela de itens da venda. assim, em qualquer tempo, você terá o valor real da época da venda.
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (i.qantidade * p.valorunitario) valortotal
from itens_venda i
left join produtos p on (p.codprod=i.codprod)
group by i.codprod
assim seria feita a soma de todas as suas vendas, e seria mostrado o valor total de cada produto. pode ser feito algo do tipo: preciso saber quais foram os produtos vendidos em março de 2003:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (i.qantidade * p.valorunitario) valortotal
from vendas v
left join itens_venda i on (i.codvenda = v.codvenda)
left join produtos p on (p.codprod=i.codprod)
where extract(month from v.datadavenda)=03 and extract(year from v.datadavenda)=2003
group by i.codprod
e por aí vai...
p.s: por experiência própria, sugiro que você grave o valor unitário do produto na tabela de itens da venda. assim, em qualquer tempo, você terá o valor real da época da venda.
Responder
05/01/2005
Emerson Nascimento
corrigindo:
deveria ser algo assim:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (sum(i.quantidade) * max(p.valorunitario)) valortotal
from itens_venda i
left join produtos p on (p.codprod=i.codprod)
group by i.codprod
assim seria feita a soma de todas as suas vendas, e seria mostrado o valor total de cada produto. pode ser feito algo do tipo: preciso saber quais foram os produtos vendidos em março de 2003:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (sum(i.quantidade) * max(p.valorunitario)) valortotal
from vendas v
left join itens_venda i on (i.codvenda = v.codvenda)
left join produtos p on (p.codprod=i.codprod)
where extract(month from v.datadavenda)=03 and extract(year from v.datadavenda)=2003
group by i.codprod
e por aí vai...
p.s: por experiência própria, sugiro que você grave o valor unitário do produto na tabela de itens da venda. assim, em qualquer tempo, você terá o valor real da época da venda.
deveria ser algo assim:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (sum(i.quantidade) * max(p.valorunitario)) valortotal
from itens_venda i
left join produtos p on (p.codprod=i.codprod)
group by i.codprod
assim seria feita a soma de todas as suas vendas, e seria mostrado o valor total de cada produto. pode ser feito algo do tipo: preciso saber quais foram os produtos vendidos em março de 2003:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (sum(i.quantidade) * max(p.valorunitario)) valortotal
from vendas v
left join itens_venda i on (i.codvenda = v.codvenda)
left join produtos p on (p.codprod=i.codprod)
where extract(month from v.datadavenda)=03 and extract(year from v.datadavenda)=2003
group by i.codprod
e por aí vai...
p.s: por experiência própria, sugiro que você grave o valor unitário do produto na tabela de itens da venda. assim, em qualquer tempo, você terá o valor real da época da venda.
Responder
05/01/2005
Dberlese
corrigindo:
deveria ser algo assim:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (sum(i.quantidade) * max(p.valorunitario)) valortotal
from itens_venda i
left join produtos p on (p.codprod=i.codprod)
group by i.codprod
assim seria feita a soma de todas as suas vendas, e seria mostrado o valor total de cada produto. pode ser feito algo do tipo: preciso saber quais foram os produtos vendidos em março de 2003:
select i.codprod, max(p.descricao), sum(i.quantidade) qtd, (sum(i.quantidade) * max(p.valorunitario)) valortotal
from vendas v
left join itens_venda i on (i.codvenda = v.codvenda)
left join produtos p on (p.codprod=i.codprod)
where extract(month from v.datadavenda)=03 and extract(year from v.datadavenda)=2003
group by i.codprod
e por aí vai...
p.s: por experiência própria, sugiro que você grave o valor unitário do produto na tabela de itens da venda. assim, em qualquer tempo, você terá o valor real da época da venda.
emerson.en, muito obrigado, é realmente isto que estou precisando, sobre a dica que vc me deu de colocar na tabela itens_venda o valor do produto isto já é feito, apenas em meu exemplo não fiz certo: ficou assim o codigo que vc montou.
select i.codprod, max(p.descricao), sum(i.quantidade) qtd,
(sum(i.quantidade) * max(i.vlunit)) valortotal
from itens_venda i
left join produtos p on (p.codprod=i.codprod)
group by i.codprod
Mais uma vez, Obrigado
Danilo
Responder
Clique aqui para fazer login e interagir na Comunidade :)