JuniorRP 0 Denunciar post Postado Maio 17, 2010 Tem como fazer uma view deste select ? SELECT PRO.PRO_CODIGO, PRO.PRO_DESCRI, PRO.PRO_PRECUS, SUM( DET.FTD_QTDITE ) AS TOTAL, SUM( DET.FTD_QTDITE ) AS MEDIA FROM FATDET DET, CADPRO PRO, FATGER FTG WHERE DET.PRO_CODIGO = PRO.PRO_CODIGO AND FTG.FTG_CODIGO = DET.FTG_CODIGO AND FTG.FTG_ESPDOC = DET.FTG_ESPDOC AND FTG.FIL_CODIGO = DET.FIL_CODIGO AND FTG.FTG_ESPDOC <> 'OR' AND FTG.FTG_TIPONF = 'VE' AND FTG.EXC_DATEXC IS NULL AND PRO.FOR_CODIGO = '0100000008' AND FTG.FTG_DATVEN >= '18/03/2010' GROUP BY PRO.PRO_CODIGO, PRO.PRO_DESCRI, PRO.PRO_PRECUS UNION SELECT PRO.PRO_CODIGO, PRO.PRO_DESCRI, PRO.PRO_PRECUS, 0 AS TOTAL, 0 AS MEDIA FROM CADPRO PRO, PROSAL SAL WHERE NOT PRO.PRO_CODIGO IN ( SELECT DET.PRO_CODIGO FROM FATDET DET, CADPRO PRO, FATGER FTG WHERE DET.PRO_CODIGO = PRO.PRO_CODIGO AND FTG.FTG_CODIGO = DET.FTG_CODIGO AND FTG.FTG_ESPDOC = DET.FTG_ESPDOC AND FTG.FIL_CODIGO = DET.FIL_CODIGO AND FTG.FTG_ESPDOC <> 'OR' AND FTG.FTG_TIPONF = 'VE' AND FTG.EXC_DATEXC IS NULL AND PRO.FOR_CODIGO = '0100000008' AND FTG.FTG_DATVEN >= '18/03/2010' GROUP BY DET.PRO_CODIGO ) AND PRO.PRO_CODIGO = SAL.PRO_CODIGO AND ( SAL.PRO_CODIGO = 0 OR SAL.PRO_SALDOS < SAL.PRO_SALMIN ) Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 17, 2010 Sintaxe básica CREATE OR REPLACE VIEW <NOME> AS <SELECT ....> Compartilhar este post Link para o post Compartilhar em outros sites
JuniorRP 0 Denunciar post Postado Maio 17, 2010 Boa tarde, isso eu sei ... rssss ... mas nao quero deixar fixo a data nem o codigo do fornecedor, meu problema esta no sub-select. Junior Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 17, 2010 Não, view não como ter parametro. Mas se a tabela em questão tiver índices a view "enxerga" estes índices fazendo com que a leitura não fique lenta. Crie a view sem os wheres e faça os filtros no select que sa a view. Uma outra solução é usar um procedure com cursor. mas não sei se funciona no XE. Qual o problema exato ? Compartilhar este post Link para o post Compartilhar em outros sites
JuniorRP 0 Denunciar post Postado Maio 17, 2010 Bem, o problema exato é pq eu tenho um sub-select dentro da view, e dentro deste sub-select tem que ser o mesmo periodo do select no select antes do union, nao sei ficou claro. Jr. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 17, 2010 O 1º Select parece ser igual ao subselect já pensou uma maneira de juntá-los ? Parece-me que dá, estou meio enrolado aqui senão matutava alguma coisa. Compartilhar este post Link para o post Compartilhar em outros sites