[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