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