Ajuda com Select

Firebird

13/10/2009

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


Souza.fo

Souza.fo

Curtidas 0

Respostas

Afarias

Afarias

13/10/2009

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+


GOSTEI 0
Souza.fo

Souza.fo

13/10/2009

Obrigado, vou efetuar os testes.

[]´s

Fabio Souza


GOSTEI 0
POSTAR