[firebase-br] RES: select complicada

Suporte GeraConst suporte em geraconst.com.br
Qui Jul 30 09:08:36 -03 2015


Quando coloco o having da isto.
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate
function or the GROUP BY clause).
select ite_item_pedido.nropedido,
        ite_item_pedido.cod_item,
        ite_pims.fat_dir,
        ite_item_pedido.sequencia seq1,
        ite_item_pedido.seq,
        ite_itens.des_item,
        plj_depara.cod_insumo,
        ite_item_pedido.cod_etapa_obra,
        plj_servicos_obra.descricao,
        coalesce(cast((select spr_fat_saldo_pedido.vn_vlr_result
           from
 spr_fat_saldo_pedido(ite_item_pedido.nropedido,ite_item_pedido.cod_item,
 
ite_pims.cod_grupo_empresa,ite_pims.cod_pessoa_empresa,ite_item_pedido.seque
ncia,
 ite_item_pedido.nropims,ite_item_pedido.seq,ite_item_pedido.seq_insumo))
 as numeric(15,2)),0) v_saldo,
        ite_items_pims.seq_insumo

 from ite_items_pims
 inner join ite_pims  on (ite_items_pims.nropims = ite_pims.nropims) 
 inner join ite_item_pedido on (ite_items_pims.nropims = 
 ite_item_pedido.nropims and
                                ite_items_pims.cod_etapa_obra = 
 ite_item_pedido.cod_etapa_obra and
                                ite_items_pims.cod_item = 
 ite_item_pedido.cod_item and
                                ite_items_pims.seq = ite_item_pedido.seq and
                                ite_items_pims.seq_insumo =
 ite_item_pedido.seq_insumo)
 inner join ite_itens on (ite_item_pedido.cod_item = 
 ite_itens.cod_item) left outer join plj_depara on (ite_itens.cod_item 
 = plj_depara.cod_item) left outer join plj_servicos_obra on 
 (ite_items_pims.cod_obra = plj_servicos_obra.cod_obra and
                                       ite_items_pims.cod_etapa_obra =
 plj_servicos_obra.codigo)
 where ite_items_pims.cod_obra = 11
 having (coalesce(cast((select spr_fat_saldo_pedido.vn_vlr_result
           from
 spr_fat_saldo_pedido(ite_item_pedido.nropedido,ite_item_pedido.cod_item,
 
ite_pims.cod_grupo_empresa,ite_pims.cod_pessoa_empresa,ite_item_pedido.seque
ncia,
 ite_item_pedido.nropims,ite_item_pedido.seq,ite_item_pedido.seq_insumo))
 as numeric(15,2)),0)) > 0

-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Otavio Benini
Enviada em: sábado, 18 de julho de 2015 10:54
Para: FireBase <lista em firebase.com.br>
Assunto: Re: [firebase-br] select complicada

depois do where:
Having v_saldo > 0

sds
*Otavio Benini*
*Benini Informática e Sistemas*
*(11) 9-8181-6553*
*(11) 4701-2797*
informatica em benini.com.br <info em benini.com.br> otavio.benini em gmail.com

Em 16 de julho de 2015 15:30, Suporte GeraConst <suporte em geraconst.com.br>
escreveu:

> Boa tarde pessoal, estou com uma questão que não sei se existe 
> solução, na seguinte select select ite_item_pedido.nropedido,
>        ite_item_pedido.cod_item,
>        ite_pims.fat_dir,
>        ite_item_pedido.sequencia seq1,
>        ite_item_pedido.seq,
>        ite_itens.des_item,
>        plj_depara.cod_insumo,
>        ite_item_pedido.cod_etapa_obra,
>        plj_servicos_obra.descricao,
>        coalesce(cast((select spr_fat_saldo_pedido.vn_vlr_result
>           from
> spr_fat_saldo_pedido(ite_item_pedido.nropedido,ite_item_pedido.cod_ite
> m,ite_pims.cod_grupo_empresa,ite_pims.cod_pessoa_empresa,ite_item_pedi
> do.sequencia,ite_item_pedido.nropims,ite_item_pedido.seq,ite_item_pedi
> do.seq_insumo))
> as numeric(15,2)),0) v_saldo,
>        ite_items_pims.seq_insumo
>
> from ite_items_pims
> inner join ite_pims  on (ite_items_pims.nropims = ite_pims.nropims) 
> inner join ite_item_pedido on (ite_items_pims.nropims = 
> ite_item_pedido.nropims and
>                                ite_items_pims.cod_etapa_obra = 
> ite_item_pedido.cod_etapa_obra and
>                                ite_items_pims.cod_item = 
> ite_item_pedido.cod_item and
>                                ite_items_pims.seq = ite_item_pedido.seq
and
>                                ite_items_pims.seq_insumo =
> ite_item_pedido.seq_insumo)
> inner join ite_itens on (ite_item_pedido.cod_item = 
> ite_itens.cod_item) left outer join plj_depara on (ite_itens.cod_item 
> = plj_depara.cod_item) left outer join plj_servicos_obra on 
> (ite_items_pims.cod_obra = plj_servicos_obra.cod_obra and
>                                       ite_items_pims.cod_etapa_obra =
> plj_servicos_obra.codigo)
> where ite_items_pims.cod_obra = 11
>
> se rodar ela assim a execução leva 656ms, agora se eu colocar um 
> filtro pra trazer somente o itens que o saldo é > 0 vai para 14s 
> existe alguma forma de fazer este filtro sem perder tanta performance ?
> Att.
> Carlos Renato.
>
>
> ---
> Este email foi escaneado pelo Avast antivírus.
> https://www.avast.com/antivirus
>
>
> ______________________________________________
> 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
>
______________________________________________
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


---
Este email foi escaneado pelo Avast antivírus.
https://www.avast.com/antivirus





Mais detalhes sobre a lista de discussão lista