CREATE OR REPLACE FORCE VIEW V_CATALOG ("NRSEQ", "CDCATEGORIA", "CDSUBCATEGORIA", "CDFILCOT", "NRCOLEPRECO", "CDREGIAO", "CDFORNECED", "CDPRODUTO", "CDMARCA", "VRPRECUNIITM", "DSTAMANHO", "CDCOMPRADOR") AS
SELECT CDPRODUTO||CDMARCA||REPLACE(REPLACE(VRPRECUNIITM, ',',''), '.', '')||CDFORNECED AS NRSEQ, CDCATEGORIA,
       CDSUBCATEGORIA, CDFILCOT, NRCOLEPRECO, CDREGIAO, CDFORNECED, CDPRODUTO, CDMARCA, VRPRECUNIITM, DSTAMANHO, CDCOMPRADOR
  FROM (SELECT PRODSUPPLY.CDCATEGORIA,
               PRODSUPPLY.CDSUBCATEGORIA,
               PRODSUPPLY.CDFILCOT,
               PRODSUPPLY.NRCOLEPRECO,
               PRODSUPPLY.CDREGIAO,
               PRODSUPPLY.CDFORNECED,
               DECODE(NVL(PRODUTO.IDTAMANHO, 'UNICO'), 'UNICO', PRODSUPPLY.CDPRODUTO, PRODUTO.CDPRODESTO) CDPRODUTO,
               PRODSUPPLY.CDMARCA,
               PRODSUPPLY.VRPRECUNIITM,
               LISTAGG(PRODUTO.IDTAMANHO, ';') WITHIN GROUP(ORDER BY PRODUTO.IDTAMANHO ) DSTAMANHO,
               COLETAPR.CDOPERADOR AS CDCOMPRADOR
          FROM PRODSUPPLY, PRODUTO, COLETAPR
         WHERE PRODSUPPLY.CDFILCOT = COLETAPR.CDFILIAL
           AND PRODSUPPLY.NRCOLEPRECO = COLETAPR.NRCOLEPRECO
           AND PRODSUPPLY.CDPRODUTO = PRODUTO.CDPRODUTO
           AND PRODSUPPLY.VRPRECUNIITM > 0
           AND PRODSUPPLY.IDATIVO = 'S'
         GROUP BY PRODSUPPLY.CDCATEGORIA, PRODSUPPLY.CDSUBCATEGORIA, PRODSUPPLY.CDFILCOT, PRODSUPPLY.NRCOLEPRECO, PRODSUPPLY.CDREGIAO,
                  PRODSUPPLY.CDFORNECED,DECODE(NVL(PRODUTO.IDTAMANHO, 'UNICO'), 'UNICO', PRODSUPPLY.CDPRODUTO, PRODUTO.CDPRODESTO),
                  PRODSUPPLY.CDMARCA, PRODSUPPLY.VRPRECUNIITM, COLETAPR.CDOPERADOR
         ORDER BY 5,7,6,10)
/