[firebase-br] Ajuda com Join's

Magnun Oliveira magnun_magnun em hotmail.com
Qua Mar 21 15:49:15 -03 2007


Tenho uma tabela de TIPOS e uma de GASTOS.
Preciso exibir todos os TIPOS q existem, e a soma dos GASTOS de cada TIPO, 
caso nao exista nenhum GASTO para determinado TIPO, exibir NULL.

fiz o select abaixo e funcionou perfeitamente.

select
TIPOS.COD_TIP, TIPOS.TIPO,
sum (GASTOS.VALOR)
from TIPOS
left join GASTOS on TIPOS.COD_TIP = GASTOS.COD_TIP
group by TIPOS.COD_TIP, TIPOS.TIPO
order by TIPOS.TIPO

porem agora preciso colocar um filtro, entre DATAS, para a soma dos GASTOS e 
continuar exibindo NULL para os TIPOS q nao tenham nenhum GASTO no periodo 
selecionado. Fiz isso e nao deu certo, o select filtrou pelo intervalo, mas 
nao exibiu os TIPOS com gasto NULL.

select
Tipos.Cod_Tip, Tipos.Tipo,
sum (Gastos.Valor)
from Tipos
left join Gastos on Tipos.Cos_Tip = Gastos.Cos_Tip

WHERE GASTOS.DATA BETWEEN :DATA_INICIAL AND :DATA_FINAL

group by Tipos.Cod_Tip, Tipos.Tipo
order by Tipos.Tipo

Alguem sabe como fazer?

Segunda duvida: Tenho uma tabela de CLIENTES. depois q colocar o filtro 
entre datas nos GASTOS, e exibir todos os TIPOS, preciso colocar um outro 
filtro e exibir apenas os CLIENTES escolhidos, 'AND CLIENTES.COD_CLI = 
:CODIGO', mas minha tabela de CLIENTES se relaciona com GASTOS.

Como ficaria o left join na tabela de TIPOS, jah q ele se relaciona soh com 
GASTOS?

Obrigado.

_________________________________________________________________
MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com





Mais detalhes sobre a lista de discussão lista