[firebase-br] Problemas com CTE no View

Fabiano Moura mctbrasil em gmail.com
Seg Jun 13 15:23:50 -03 2011


OK! Farei isso! Valeu!
Aliás, aproveito para parabenizar pelas palestras do FDD, gostei!


Fabiano

Em 13 de junho de 2011 15:19, Carlos H. Cantu <listas em warmboot.com.br>escreveu:

> Fabiano,
>
> Sugiro que vc poste no tracker do firebird um "zip" contendo um
> pequeno banco de dados, e a view demonstrando o problema.
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
>
> FM> *Boa tarde!*
>
> FM>   Tenho um CTE e criei uma view, utilizando ela, porém a view, não me
> mostra
> FM> os resultados de algumas colunas do tipo numeric, mas se eu executar a
> mesma
> FM> CTE fora da view, o resultado mostra todos os valores da coluna! Já
> mudei o
> FM> CTE, só para teste e o resultado é o mesmo!
>
> FM> O código da view é:
>
> FM> *create view VW_PEDIDOXENTREGA (*
> FM> *    PEDIDO,*
> FM> *    CODIGO_FORNECEDOR,*
> FM> *    FORNECEDOR,*
> FM> *    DOC_SAF,*
> FM> *    CODIGO_PRODUTO,*
> FM> *    QTDE_PEDIDO,*
> FM> *    UNID_MED,*
> FM> *    QTDE_ENTREGUE)*
> FM> *as*
> FM> *with CTE_ESTORNO (DOCUMENTO)*
> FM> *as (select DOCUMENTO_ESTORNO*
> FM> *    from ESTORNO_NOTA_FISCAL*
> FM> *    where EXCLUIR <> 'S'),*
> FM> *CTE_COMPRA_TBREQUISICAO(DOCUMENTO, PEDIDO, CODIGO_FORNECEDOR) as (*
> FM> *select R.DOCUMENTO, R.PEDIDO, R.ORIGEM_MOVIMENTO*
> FM> *from REQUISICAO R*
> FM> *where R.EXCLUIR <> 'S' and*
> FM> *      R.TIPO_REQUISICAO = 'CO' and*
> FM> *      R.PEDIDO is not null and*
> FM> *      R.PEDIDO <> '0' and*
> FM> *      R.DOCUMENTO not in (select DOCUMENTO*
> FM> *                          from CTE_ESTORNO)*
> FM> *group by R.DOCUMENTO, R.PEDIDO, R.ORIGEM_MOVIMENTO*
> FM> *order by R.PEDIDO desc, R.DOCUMENTO desc),*
> FM> *CTE_COMPRA_TBMOVIMENTO(DOCUMENTO, PEDIDO, CODIGO_FORNECEDOR) as (*
> FM> *select distinct R.DOCUMENTO, M.PEDIDO, R.ORIGEM_MOVIMENTO*
> FM> *from REQUISICAO R*
> FM> *inner join MOVIMENTO M on R.DOCUMENTO = M.DOCUMENTO*
> FM> *where R.EXCLUIR <> 'S' and*
> FM> *      R.TIPO_REQUISICAO = 'CO' and*
> FM> *      M.EXCLUIR <> 'S' and*
> FM> *      M.PEDIDO is not null and*
> FM> *      R.DOCUMENTO not in (select DOCUMENTO*
> FM> *                          from CTE_ESTORNO)*
> FM> *group by R.DOCUMENTO, M.PEDIDO, R.ORIGEM_MOVIMENTO*
> FM> *order by M.PEDIDO desc, R.DOCUMENTO desc),*
> FM> *CTE_COMPRA(DOCUMENTO, PEDIDO, CODIGO_FORNECEDOR) as (*
> FM> *select TB1.DOCUMENTO, TB1.PEDIDO, TB1.CODIGO_FORNECEDOR*
> FM> *from CTE_COMPRA_TBREQUISICAO TB1*
> FM> *union all*
> FM> *select TB2.DOCUMENTO, TB2.PEDIDO, TB2.CODIGO_FORNECEDOR*
> FM> *from CTE_COMPRA_TBMOVIMENTO TB2),*
> FM> *CTE_PEDIDOSXCOMPRA(PEDIDO, CODIGO_FORNECEDOR, DOCUMENTO) as (*
> FM> *select PEDIDO, CODIGO_FORNECEDOR, DOCUMENTO*
> FM> *from CTE_COMPRA*
> FM> *group by PEDIDO, CODIGO_FORNECEDOR, DOCUMENTO*
> FM> *order by PEDIDO desc, CODIGO_FORNECEDOR, DOCUMENTO desc),*
> FM> *CTE_PEDIDOS(PEDIDO, CODIGO_FORNECEDOR, DOC_SAF, CODIGO_PRODUTO, QTDE,
> FM> UNID_MED) as (*
> FM> *select CTE1.PEDIDO, CTE1.CODIGO_FORNECEDOR, CTE1.DOCUMENTO,
> LVA.COD_PROD,
> FM> LVA.QTDE, UM.ABREVIACAO*
> FM> *from CTE_PEDIDOSXCOMPRA CTE1*
> FM> *inner join LANCA_VAL LV on CTE1.PEDIDO = LV.NUM_SOLIC and
> FM> CTE1.CODIGO_FORNECEDOR = LV.COD_FORNEC*
> FM> *inner join LANCA_VALORES LVA on LV.NUM_SOLIC = LVA.NUM_SOLIC and
> FM> LV.COD_FORNEC = LVA.COD_FORNEC*
> FM> *inner join SOLIC_PRODUTO SP on LVA.NUM_SOLIC = SP.NUM_SOLIC and
> FM> LVA.COD_PROD = SP.CODIGO_PRODUTO*
> FM> *inner join UNIDADE_MEDIDA UM on SP.CODIGO_UNID_MEDIDA =
> FM> UM.CODIGO_UNIDADE_MEDIDA*
> FM> *where LVA.FLAG = 'V' and*
> FM> *      LVA.EXCLUIR <> 'S' and*
> FM> *      LV.EXCLUIR <> 'S'*
> FM> *group by CTE1.PEDIDO, CTE1.CODIGO_FORNECEDOR, CTE1.DOCUMENTO,
> LVA.COD_PROD,
> FM> LVA.QTDE, UM.ABREVIACAO*
> FM> *order by CTE1.PEDIDO desc, CTE1.CODIGO_FORNECEDOR, CTE1.DOCUMENTO
> desc,
> FM> LVA.COD_PROD),*
> FM> *CTE_FINAL (PEDIDO, CODIGO_FORNECEDOR, FORNEC, DOC_SAF, CODIGO_PRODUTO,
> FM> QTDE_PEDIDO, UNID_MED, QTDE_ENTREGUE) as*
> FM> *(select CTE1.PEDIDO, CTE1.CODIGO_FORNECEDOR, F.NOME as FORNEC,
> FM> CTE1.DOC_SAF, CTE1.CODIGO_PRODUTO,*
> FM> *       cast(CTE1.QTDE as numeric(12,4)) as QTDE_PEDIDO,
> CTE1.UNID_MED,*
> FM> *       cast(sum(M.QUANTIDADE * M.QTD_EMBALAGEM) as numeric(12,4)) as
> FM> QTDE_ENTREGUE*
> FM> *from CTE_PEDIDOS CTE1*
> FM> *inner join REQUISICAO R on CTE1.DOC_SAF = R.DOCUMENTO and R.PEDIDO =
> FM> CTE1.PEDIDO*
> FM> *inner join MOVIMENTO M on R.DOCUMENTO = M.DOCUMENTO and
> CTE1.CODIGO_PRODUTO
> FM> = M.CODIGO_PRODUTO*
> FM> *inner join FORNECEDOR F on CTE1.CODIGO_FORNECEDOR = F.CODIGO*
> FM> *group by CTE1.PEDIDO, CTE1.CODIGO_FORNECEDOR, F.NOME, CTE1.DOC_SAF,
> FM> CTE1.CODIGO_PRODUTO, CTE1.QTDE, CTE1.UNID_MED)*
> FM> *select PEDIDO, CODIGO_FORNECEDOR, FORNEC, DOC_SAF, CODIGO_PRODUTO,
> FM> QTDE_PEDIDO, UNID_MED, QTDE_ENTREGUE*
> FM> *  from CTE_FINAL*
>
>
>
> FM>   Alguém poderia me ajudar?
>
> FM>   *OBS:*
> FM>     Estou utilizando o FB 2.5 Classic Server!
>
>
> FM> *Obrigado,*
> FM> *
> FM> *
> FM> *
> FM> *
> FM> *Fabiano*
> FM> ______________________________________________
> FM> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> FM> Para saber como gerenciar/excluir seu cadastro na lista, use:
> FM> http://www.firebase.com.br/fb/artigo.php?id=1107
> FM> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> 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://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista