Re: [firebase-br] Problema sério com View
Eduardo Jedliczka
eduardo em gerasoftinfo.com.br
Ter Nov 30 15:43:06 -03 2004
Não,
Left Join quer dizer, traga tudo da primeira tabela, e caso exista, os
relacionamentos com a segunda tabela...
Para filtrar, deve-se utilizar o Inner Join. (traga somente o que existir em
ambas as tabelas).
[s]
=====================
Eduardo Jedliczka
GeraSoft Informática
Apucarana - PR
=====================
----- Original Message -----
From: "Luciano R. Machado" <luciano em rsys.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, November 30, 2004 12:10 PM
Subject: [firebase-br] Problema sério com View
> Olá,
>
> Tenho uma situação onde uma view é usada em um left join da seguinte
> maneira:
>
> Select
> Cast(ViewPed.ValorCustoFor as Decimal(11,2)) as ValorCustoFor,
> ...
> ...
> From Pedidos
> ...
> Left Join ViewPedidos ViewPed
> on ViewPed.Empresa = 4
> and ViewPed.CodPedido = 100
> ...
> ...
> Where Pedidos.Empresa = 4
> and Pedidos.CodPedido = 100
>
> Esse select deve retornar soment uma linha mas a View está gerando
> leitura em todos os registros de duas tabelas, uma com 121.000 e
> outra com 434.000 registros.
>
> Segue o código da view (retirei as partes irrelevantes)
>
> CREATE VIEW VIEWPEDIDOS(
> EMPRESA,
> CODPEDIDO,
> VALORCUSTOFOR,
> VALORCUSTOULT,
> VALORCUSTOMED,
> VALORCUSTOSER)
> AS
> BEGIN
> select Ped.Empresa, Ped.CodPedido,
> ...
> from Pedidos Ped
> left join MovEstoque Mov on Mov.Empresa = Ped.Empresa
> and Mov.CodPedido = Ped.CodPedido
> and Mov.NumLancamento <> 0
> and Ped.CodPedido <> 0
> group by Ped.Empresa, Ped.CodPedido
>
> Os valores passados no Left Join não deveria ser usados como
> filtro no Where da View?
>
> O que vocês aconselham??
>
> Obrigado.
>
> --
> Luciano Rodrigues Machado
> Programador - Ribeirão Preto-SP
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
Mais detalhes sobre a lista de discussão lista