Fórum Ajuda com Select #60938
13/10/2009
0
Amigos,
Estou tentando montar um SELECT, mas estou tendo muita dificuldade.
Tabela VENDAS
CODPRODUTO
QUANTIDADE
VALORTOTAL
EX: CODPRODUTO QUANTIDADE VALORTOTAL
00001 2 10,00
00002 2 10,00
00001 1 5,00
Tabela de Produtos
CODPRODUTO
DESCRICAO
ALIQUOTA
EX: CODPRODUTO DESCRICAO ALIQUOTA
00001 AAAAAAA 12
00002 BBBBBBB 07
O Resultado deverá ser:
CODPRODUTO DESCRICAO QUANTIDADE VALORTOTAL ALIQUOTA
00001 AAAAAAA 3 15,00 12
00002 BBBBBBB 2 10,00 07
Entretanto não consigo fazer a consulta. Alguém pode me ajudar?
Obrigado,
Fabio Souza
Estou tentando montar um SELECT, mas estou tendo muita dificuldade.
Tabela VENDAS
CODPRODUTO
QUANTIDADE
VALORTOTAL
EX: CODPRODUTO QUANTIDADE VALORTOTAL
00001 2 10,00
00002 2 10,00
00001 1 5,00
Tabela de Produtos
CODPRODUTO
DESCRICAO
ALIQUOTA
EX: CODPRODUTO DESCRICAO ALIQUOTA
00001 AAAAAAA 12
00002 BBBBBBB 07
O Resultado deverá ser:
CODPRODUTO DESCRICAO QUANTIDADE VALORTOTAL ALIQUOTA
00001 AAAAAAA 3 15,00 12
00002 BBBBBBB 2 10,00 07
Entretanto não consigo fazer a consulta. Alguém pode me ajudar?
Obrigado,
Fabio Souza
Souza.fo
Curtir tópico
+ 0
Responder
Posts
14/10/2009
Afarias
Uma forma de fazer:
select v.CODPRODUTO,
max(p.DESCRICAO) as DESCRICAO, /* valor igual pra todos registros no grupo */
sum(v.QUANTIDADE) as QUANTIDADE,
sum(v.VALORTOTAL) as VALORTOTAL,
max(p.ALIQUOTA) as ALIQUOTA /* valor igual pra todos registros no grupo */
FROM VENDAS v
JOIN PRODUTOS p on p.CODPRODUTO=v.CODPRODUTO
/* where? */
GROUP BY v.CODPRODUTO
Outra é agrupando por todos os campos de produtos (o grupo):
select p.CODPRODUTO,
p.DESCRICAO,
sum(v.QUANTIDADE) as QUANTIDADE,
sum(v.VALORTOTAL) as VALORTOTAL,
p.ALIQUOTA
FROM VENDAS v
JOIN PRODUTOS p on p.CODPRODUTO=v.CODPRODUTO
/* where? */
GROUP BY p.CODPRODUTO, p.DESCRICAO, p.ALIQUOTA
Outra forma seria usando um SP, e outra seria usando CTE (FB 2.1)
T+
select v.CODPRODUTO,
max(p.DESCRICAO) as DESCRICAO, /* valor igual pra todos registros no grupo */
sum(v.QUANTIDADE) as QUANTIDADE,
sum(v.VALORTOTAL) as VALORTOTAL,
max(p.ALIQUOTA) as ALIQUOTA /* valor igual pra todos registros no grupo */
FROM VENDAS v
JOIN PRODUTOS p on p.CODPRODUTO=v.CODPRODUTO
/* where? */
GROUP BY v.CODPRODUTO
Outra é agrupando por todos os campos de produtos (o grupo):
select p.CODPRODUTO,
p.DESCRICAO,
sum(v.QUANTIDADE) as QUANTIDADE,
sum(v.VALORTOTAL) as VALORTOTAL,
p.ALIQUOTA
FROM VENDAS v
JOIN PRODUTOS p on p.CODPRODUTO=v.CODPRODUTO
/* where? */
GROUP BY p.CODPRODUTO, p.DESCRICAO, p.ALIQUOTA
Outra forma seria usando um SP, e outra seria usando CTE (FB 2.1)
T+
Responder
Gostei + 0
14/10/2009
Souza.fo
Obrigado, vou efetuar os testes.
[]´s
Fabio Souza
[]´s
Fabio Souza
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)