[firebase-br] Dúvida em SELECT

Renato Braun renato_braun em uol.com.br
Qua Ago 10 11:26:50 -03 2011


Bom dia a todos, segue abaixo algumas tabelas do meus sistema e ao final a
dúvida.

 

GRUPO

GRP_ID    GRP_DESCR

1         Idade

2         Espécie

 

SUBGRUPO

SG_ID SG_GRUPO(FK)   SG_DESCR

1    1             Filhote

2    1             Adulto

3    1             Senior

4    2             Cachorro

5    2             Gato

6    2             Outros

 

PRODUTO

PROD_ID   PROD_DESCR

1         Ração A

2         Ração B

3         Ração C

4         Ração D

 

PRODSUBGRUPO

PSG_PRODUTO     PSG_GRUPO PSG_SUBGRUPO    RESULTADO

1              1         1              Ração A = Idade-Filhote

1              2         4              Raçao A = Espécie-Cahorro

2              1         2              Ração B = Idade-Adultro

2              2         5              Ração B = Espécie-Gato

3              1         1              Ração C = Idade-Filhote

3              2         5              Raçao C = Espécie-Gato

4              1         3              Ração D = Idade-Senior

4              2         4              Raçao D = Espécie-Cachorro

 

Uma ração pertence a cada um dos grupos cadastrados porém com vinculo apenas
a um único sub-grupo de cada grupo

 

Tenho a tabela de vendas que resumindo tem

VENDA

VEN_ID    VEN_DATA  VEN_VENDEDOR    VEN_PRODUTO(FK) VEN_QTDE  VEN_PRECO

1         01/01/2011 Vend 1          1              10        20,00

2         01/01/2011 Vend 1          2              20        15,00

3         01/01/2011 Vend 2          1              5         20,00

4         01/01/2011 Vend 2          3              6         15,00

 

Preciso montar uma consulta que tenha como resultado o total de vendas por
vendedor e por sub-grupo (dado o grupo principal), porém tenho que mostrar
todos os sub-grupo do grupo mesmo que não tenham tido vendas. OBS: a tabela
de vendas é gigantesca, a de grupo vai ter uns 15 registros e para cada
grupo terá uns 5 sub-grupos.

 

Utilizo a seguinte consulta, porém não me retornar todos os sub-grupos do
grupo 1, neste caso não tive venda de produto 4-Ração D que pertence ao
grupo 1 (idade) e sub-grupo 3 (senior) e preciso que o mesmo seja
apresentado vendedor a vendedor com o total 0

 

SELECT VEN_VENDEDOR DESCR, SG_DESCR,

SUM( VEN_QTDE * VEN_PRECO ) PRECO

FROM VENDA

LEFT JOIN PRODSUBGRUPO ON PSG_GRUPO = 1 AND PSG_PRODUTO = VEN_PRODUTO

LEFT JOIN SUBGRUPO ON PSG_SUBGRUPO = SG_ID

GROUP BY 1,2

 

Obrigado a todos.




Mais detalhes sobre a lista de discussão lista