[firebase-br] Problemas com CTE no View

Fabiano Moura mctbrasil em gmail.com
Seg Jun 13 12:17:34 -03 2011


*Boa tarde!*

  Tenho um CTE e criei uma view, utilizando ela, porém a view, não me mostra
os resultados de algumas colunas do tipo numeric, mas se eu executar a mesma
CTE fora da view, o resultado mostra todos os valores da coluna! Já mudei o
CTE, só para teste e o resultado é o mesmo!

O código da view é:

*create view VW_PEDIDOXENTREGA (*
*    PEDIDO,*
*    CODIGO_FORNECEDOR,*
*    FORNECEDOR,*
*    DOC_SAF,*
*    CODIGO_PRODUTO,*
*    QTDE_PEDIDO,*
*    UNID_MED,*
*    QTDE_ENTREGUE)*
*as*
*with CTE_ESTORNO (DOCUMENTO)*
*as (select DOCUMENTO_ESTORNO*
*    from ESTORNO_NOTA_FISCAL*
*    where EXCLUIR <> 'S'),*
*CTE_COMPRA_TBREQUISICAO(DOCUMENTO, PEDIDO, CODIGO_FORNECEDOR) as (*
*select R.DOCUMENTO, R.PEDIDO, R.ORIGEM_MOVIMENTO*
*from REQUISICAO R*
*where R.EXCLUIR <> 'S' and*
*      R.TIPO_REQUISICAO = 'CO' and*
*      R.PEDIDO is not null and*
*      R.PEDIDO <> '0' and*
*      R.DOCUMENTO not in (select DOCUMENTO*
*                          from CTE_ESTORNO)*
*group by R.DOCUMENTO, R.PEDIDO, R.ORIGEM_MOVIMENTO*
*order by R.PEDIDO desc, R.DOCUMENTO desc),*
*CTE_COMPRA_TBMOVIMENTO(DOCUMENTO, PEDIDO, CODIGO_FORNECEDOR) as (*
*select distinct R.DOCUMENTO, M.PEDIDO, R.ORIGEM_MOVIMENTO*
*from REQUISICAO R*
*inner join MOVIMENTO M on R.DOCUMENTO = M.DOCUMENTO*
*where R.EXCLUIR <> 'S' and*
*      R.TIPO_REQUISICAO = 'CO' and*
*      M.EXCLUIR <> 'S' and*
*      M.PEDIDO is not null and*
*      R.DOCUMENTO not in (select DOCUMENTO*
*                          from CTE_ESTORNO)*
*group by R.DOCUMENTO, M.PEDIDO, R.ORIGEM_MOVIMENTO*
*order by M.PEDIDO desc, R.DOCUMENTO desc),*
*CTE_COMPRA(DOCUMENTO, PEDIDO, CODIGO_FORNECEDOR) as (*
*select TB1.DOCUMENTO, TB1.PEDIDO, TB1.CODIGO_FORNECEDOR*
*from CTE_COMPRA_TBREQUISICAO TB1*
*union all*
*select TB2.DOCUMENTO, TB2.PEDIDO, TB2.CODIGO_FORNECEDOR*
*from CTE_COMPRA_TBMOVIMENTO TB2),*
*CTE_PEDIDOSXCOMPRA(PEDIDO, CODIGO_FORNECEDOR, DOCUMENTO) as (*
*select PEDIDO, CODIGO_FORNECEDOR, DOCUMENTO*
*from CTE_COMPRA*
*group by PEDIDO, CODIGO_FORNECEDOR, DOCUMENTO*
*order by PEDIDO desc, CODIGO_FORNECEDOR, DOCUMENTO desc),*
*CTE_PEDIDOS(PEDIDO, CODIGO_FORNECEDOR, DOC_SAF, CODIGO_PRODUTO, QTDE,
UNID_MED) as (*
*select CTE1.PEDIDO, CTE1.CODIGO_FORNECEDOR, CTE1.DOCUMENTO, LVA.COD_PROD,
LVA.QTDE, UM.ABREVIACAO*
*from CTE_PEDIDOSXCOMPRA CTE1*
*inner join LANCA_VAL LV on CTE1.PEDIDO = LV.NUM_SOLIC and
CTE1.CODIGO_FORNECEDOR = LV.COD_FORNEC*
*inner join LANCA_VALORES LVA on LV.NUM_SOLIC = LVA.NUM_SOLIC and
LV.COD_FORNEC = LVA.COD_FORNEC*
*inner join SOLIC_PRODUTO SP on LVA.NUM_SOLIC = SP.NUM_SOLIC and
LVA.COD_PROD = SP.CODIGO_PRODUTO*
*inner join UNIDADE_MEDIDA UM on SP.CODIGO_UNID_MEDIDA =
UM.CODIGO_UNIDADE_MEDIDA*
*where LVA.FLAG = 'V' and*
*      LVA.EXCLUIR <> 'S' and*
*      LV.EXCLUIR <> 'S'*
*group by CTE1.PEDIDO, CTE1.CODIGO_FORNECEDOR, CTE1.DOCUMENTO, LVA.COD_PROD,
LVA.QTDE, UM.ABREVIACAO*
*order by CTE1.PEDIDO desc, CTE1.CODIGO_FORNECEDOR, CTE1.DOCUMENTO desc,
LVA.COD_PROD),*
*CTE_FINAL (PEDIDO, CODIGO_FORNECEDOR, FORNEC, DOC_SAF, CODIGO_PRODUTO,
QTDE_PEDIDO, UNID_MED, QTDE_ENTREGUE) as*
*(select CTE1.PEDIDO, CTE1.CODIGO_FORNECEDOR, F.NOME as FORNEC,
CTE1.DOC_SAF, CTE1.CODIGO_PRODUTO,*
*       cast(CTE1.QTDE as numeric(12,4)) as QTDE_PEDIDO, CTE1.UNID_MED,*
*       cast(sum(M.QUANTIDADE * M.QTD_EMBALAGEM) as numeric(12,4)) as
QTDE_ENTREGUE*
*from CTE_PEDIDOS CTE1*
*inner join REQUISICAO R on CTE1.DOC_SAF = R.DOCUMENTO and R.PEDIDO =
CTE1.PEDIDO*
*inner join MOVIMENTO M on R.DOCUMENTO = M.DOCUMENTO and CTE1.CODIGO_PRODUTO
= M.CODIGO_PRODUTO*
*inner join FORNECEDOR F on CTE1.CODIGO_FORNECEDOR = F.CODIGO*
*group by CTE1.PEDIDO, CTE1.CODIGO_FORNECEDOR, F.NOME, CTE1.DOC_SAF,
CTE1.CODIGO_PRODUTO, CTE1.QTDE, CTE1.UNID_MED)*
*select PEDIDO, CODIGO_FORNECEDOR, FORNEC, DOC_SAF, CODIGO_PRODUTO,
QTDE_PEDIDO, UNID_MED, QTDE_ENTREGUE*
*  from CTE_FINAL*



  Alguém poderia me ajudar?

  *OBS:*
    Estou utilizando o FB 2.5 Classic Server!


*Obrigado,*
*
*
*
*
*Fabiano*



Mais detalhes sobre a lista de discussão lista