[firebase-br] Ajuda com view

Washington Tavares washingtontavares em gmail.com
Ter Set 22 08:45:02 -03 2015


Bom dia, José Luiz,

Por que é que você não tenta fazer usando 2 View´s:

A primeira seria só para totalizar:

CREATE OR ALTER VIEW VW_TOTAL_PEDIDO(
ID_CARGA,
PEDV,
COD_PROD,
DESCRICAO,
CBARRA,
VENDIDO,
SEPARADO,
FALTA,
PERCENTUAL)
AS
select IG.id_carga,P.pedv,I.cod_prod,I.desc_prod,I.cbarra,
sum(coalesce(I.qtde_vendido,0))as Vendido,
sum(coalesce(I.qtde_separado,0))as separado,
sum(I.qtde_vendido - I.qtde_separado)as FALTA,
sum(I.qtde_separado) / SUM(i.qtde_vendido) * 100 AS Percentual
from Item_pedido I
inner join pedido P on(P.pedv = I.pedv)
inner join item_carga IG on (IG.id_pedido = P.pedv)
where
i.qtde_vendido > 0
group by
IG.id_carga,P.pedv,I.cod_prod,I.desc_prod,I.cbarra

A outra View é que seria:
CREATE OR ALTER VIEW VW_CARGA_FALTA(
ID_CARGA,
PEDV,
COD_PROD,
DESCRICAO,
CBARRA,
NOMEREGIAO,
SEPARADOR,
VENDIDO,
SEPARADO,
FALTA,
PERCENTUAL)
AS
select IG.id_carga,P.pedv,I.cod_prod,I.desc_prod,I.cbarra,R.nome_
regiao,U.nome,
I.Vendido,
I.separado,
I.FALTA,
I.Percentual
from VW_TOTAL_PEDIDO I
inner join pedido P on(P.pedv = I.pedv)
inner join item_carga IG on (IG.id_pedido = P.pedv)
inner join carga CG on(CG.ID_CARGA = IG.ID_CARGA)
inner join regiao R on(R.id_regiao = CG.id_regiao)
inner join usuario U on(U.ID_USER = CG.ID_FUNC)

Creio que você deva ter captado a idéia.


Em 21 de setembro de 2015 22:51, Jose Luiz de Medeiros <
joseluiz em digitoneletronica.com.br> escreveu:

> boa noite,
>
>
>
> tenho um controle de cargas, onde numa view pego os produtos que precisam
> ser produzidos para atender determinada carga. criei essa view, funciona
> 100% mas estou achando um pouco demorado:
>
> CREATE OR ALTER VIEW VW_CARGA_FALTA(
> ID_CARGA,
> PEDV,
> COD_PROD,
> DESCRICAO,
> CBARRA,
> NOMEREGIAO,
> SEPARADOR,
> VENDIDO,
> SEPARADO,
> FALTA,
> PERCENTUAL)
> AS
> select
> IG.id_carga,P.pedv,I.cod_prod,I.desc_prod,I.cbarra,R.nome_regiao,U.nome,
> sum(coalesce(I.qtde_vendido,0))as Vendido,
> sum(coalesce(I.qtde_separado,0))as separado,
> sum(I.qtde_vendido - I.qtde_separado)as FALTA,
> sum(I.qtde_separado) / SUM(i.qtde_vendido) * 100 AS Percentual
> from Item_pedido I
> inner join pedido P on(P.pedv = I.pedv)
> inner join item_carga IG on (IG.id_pedido = P.pedv)
> inner join carga CG on(CG.ID_CARGA = IG.ID_CARGA)
> inner join regiao R on(R.id_regiao = CG.id_regiao)
> inner join usuario U on(U.ID_USER = CG.ID_FUNC)
> where
> i.qtde_vendido > 0
> group by
> IG.id_carga,P.pedv,I.cod_prod,I.desc_prod,I.cbarra,R.nome_regiao,u.nome
>
>
> olha o resultado da performance:
>
> ------ Performance info ------
> Prepare time = 16ms
> Execute time = 36s 656ms
> Avg fetch time = 1.078,12 ms
> Current memory = 102.561.552
> Max memory = 102.909.160
> Memory buffers = 2.048
> Reads from disk to cache = 0
> Writes from cache to disk = 0
> Fetches from cache = 1.483.819
>
>
> Será que esta normal ou teria uma forma de melhorar essa view, agradeço a
> todos que puderem me ajudar:
>
>
> grato:
>
>
>
>
>
>
> Jose Luiz de Medeiros
>
> -----------------------------------
>
>
> Programmer &   TI Professional
>
> :: delphi - php - firebird - mysql ::
>
> (31)9628-4764
>
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



-- 
Washington Tavares
84 9188 3135(tim)
tawaresw em hotmail.com
tawaresw em yahoo.com
Skype: washington_tavares



Mais detalhes sobre a lista de discussão lista