[firebase-br] Duvidas com SQL, left join, view, union, e relacionamento de tabelas

Jeferson Oliveira jefersonfoliveira em gmail.com
Dom Jul 22 17:33:47 -03 2007


Magnun Oliveira wrote:
 > Enfim depois dessa dissertação, veem as perguntas:

Ufa! Até que enfim. :)


 > usar select TAB_ ... union select TAB_... é confiável?

Sim.


 > PQ no meu caso nao
 > retornou o recordcount certo?

Porque estava sendo utilizada uma amarração inadequada entre as tabelas.


 > usa-la no View q ferrou tudo?

Não.


 > será q é preciso fazer isso msm ou naquele sql inicial com left join 
da pra
 > resolver?

Dá pra resolver com o inicial, sem a necessidade de criar view.


 > e por ultimo, essa estrutura q estou usando é a correta? visto q talves
 > existira algum registro na tab_filho pra um na tabela pai?

Está incorreta, pois você vinculava a tabela filho ao TIPO, sem 
vinculá-la á tabela PAI, daí o porquê do resultado completamente louco.

Minha sugestão para que obtenha o resultado correto e uma performance 
bem superior àquela que você obteria com a sentença que apresentou aqui é:

select TIPO.TIPO, sum(TAB_PAI.VALOR) as TOTAL_PAI, sum (TAB_FILHO.VALOR) 
as TOTAL_FILHOS
from TAB_PAI
left join TIPO on (TIPO.ID_TIPO = TAB_PAI.ID_TIPO)
left join TAB_FILHO on (TAB_FILHO.ID_PAI = TAB_PAI.ID_PAI)
where TIPO.TIPO <> 'SUB ITENS'
group by TIPO.TIPO


 > Obrigado e descupem o texto gigante, é q tentei ao maximo passar o q
 > ocorreu.

Compreendo. Mas sugiro que quando estiver diante de problemas grandes 
como esse tente identificar quais são os pontos onde vopcê tem realmente 
dúvida. Se for o caso poste mais de um tópico cada um com uma dúvida 
específica. Tente tornar seus tópicos mais atraentes, para que não 
fiquem novamente 19 dias sem resposta. ;)


Abraço!
Jeferson Oliveira





Mais detalhes sobre a lista de discussão lista