Usando Left Outer Join
Pessoal, tenho as seguintes tabela:
Tabela:
Unidade
categoria1 varchar
categoria2 varchar
categoria3 varchar
registros:
categoria1 categoria2 categoria3
cat1 cat2 cat3
cat1 cat2 (VAZIO)
cat1 (VAZIO) (VAZIO)
Tabela:
Estrurua
categoria1 varchar
categoria2 varchar
categoria3 varchar
registros:
categoria1 categoria2 categoria3 valores
cat1 cat2 cat3 100
cat1 cat2 (VAZIO) 200
cat1 (VAZIO) (VAZIO) 300
Quando eu utilizo um select:
Select U.categoria1, U.categoria2, U.categoria3, E.valores
from unidade as U LEFT OUTER JOIN estrutura as E using (categoria1,categoria2,categoria3)
O Resultado é esse:
categoria1 categoria2 categoria3 valores
cat1 cat2 cat3 100
cat1 cat2 (VAZIO) (VAZIO)
cat1 (VAZIO) (VAZIO) (VAZIO)
O ESPERADO É:
categoria1 categoria2 categoria3 valores
cat1 cat2 cat3 100
cat1 cat2 (VAZIO) 200
cat1 (VAZIO) (VAZIO) 300
quando uso o left outer join nas duas tabelas os valores da tabela ESTRUTURA, onde apresenta CAMPOS (VAZIO)
não é exibido. Ou seja, a comparação com os campos nulos não é feita, Existe alguma maneira para que apareça ou a clasula USING faça a comporação de campos NULOS.
Tabela:
Unidade
categoria1 varchar
categoria2 varchar
categoria3 varchar
registros:
categoria1 categoria2 categoria3
cat1 cat2 cat3
cat1 cat2 (VAZIO)
cat1 (VAZIO) (VAZIO)
Tabela:
Estrurua
categoria1 varchar
categoria2 varchar
categoria3 varchar
registros:
categoria1 categoria2 categoria3 valores
cat1 cat2 cat3 100
cat1 cat2 (VAZIO) 200
cat1 (VAZIO) (VAZIO) 300
Quando eu utilizo um select:
Select U.categoria1, U.categoria2, U.categoria3, E.valores
from unidade as U LEFT OUTER JOIN estrutura as E using (categoria1,categoria2,categoria3)
O Resultado é esse:
categoria1 categoria2 categoria3 valores
cat1 cat2 cat3 100
cat1 cat2 (VAZIO) (VAZIO)
cat1 (VAZIO) (VAZIO) (VAZIO)
O ESPERADO É:
categoria1 categoria2 categoria3 valores
cat1 cat2 cat3 100
cat1 cat2 (VAZIO) 200
cat1 (VAZIO) (VAZIO) 300
quando uso o left outer join nas duas tabelas os valores da tabela ESTRUTURA, onde apresenta CAMPOS (VAZIO)
não é exibido. Ou seja, a comparação com os campos nulos não é feita, Existe alguma maneira para que apareça ou a clasula USING faça a comporação de campos NULOS.
Guilhr
Curtidas 0
Respostas
Wilson Junior
08/09/2010
Teste assim:
Espero ter colaborado.
SELECT uni.Categoria1, uni.Categoria2, uni.Categoria3, estr.Valores FROM UNIDADE AS uni LEFT OUTER JOIN ESTRUTURA AS estr ON ( uni.Categoria1 = estr.Categoria1 AND uni.Categoria2 = estr.Categoria2 AND uni.Categoria3 = estr.Categoria3)
Espero ter colaborado.
GOSTEI 0
Guilhr
08/09/2010
Teste assim:
Espero ter colaborado.
SELECT uni.Categoria1, uni.Categoria2, uni.Categoria3, estr.Valores FROM UNIDADE AS uni LEFT OUTER JOIN ESTRUTURA AS estr ON ( uni.Categoria1 = estr.Categoria1 AND uni.Categoria2 = estr.Categoria2 AND uni.Categoria3 = estr.Categoria3)
Espero ter colaborado.
Olá Wilson, já tentei dessa maneira maneira e não deu certo.
GOSTEI 0
Wilson Junior
08/09/2010
Teste assim então:
Espero ter colaborado.
SELECT uni.Categoria1, uni.Categoria2, uni.Categoria3, estr.Valores FROM UNIDADE AS uni LEFT OUTER JOIN ESTRUTURA AS estr ON ( uni.Categoria1 = estr.Categoria1 AND COALESCE(uni.Categoria2, 0) = COALESCE(estr.Categoria2, 0) AND COALESCE(uni.Categoria3, 0) = COALESCE(estr.Categoria3, 0) )
Espero ter colaborado.
GOSTEI 0