Pular para o conteúdo

Fóruns SQL e PL/SQL Ajuda para montar essa Select Ajuda para montar essa Select

#99770
facc
Participante

    Bom dia, fiz dessa forma

    SELECT RES.CODIGO,
    RES.PRODUTO,
    RES.CODGRUPO,
    RES.DESCGRUPO,
    RES.FORNECEDOR,
    RES.MVENDAS1,
    RES.YVENDAS1,
    RES.DTULTCOMP,
    RES.QTDULTCOMP,
    RES.VLRULTCOMP,
    RES.ESTQDIAS,
    RES.ESTQQTD,
    RES.CUSTOATUAL,
    RES.VLRVENDA,
    RES.CUSTO
    FROM (SELECT CAD_ITPROD.CODPRODDF CODIGO,
    CAD_PROD.DESCRICAO PRODUTO,
    CAD_PROD.CODGRUPO CODGRUPO,
    CAD_GRUPO.DESCRICAO DESCGRUPO,
    CAD_FORNE.FANTASIA FORNECEDOR,
    0 MVENDAS1,
    0 YVENDAS1,
    CAD_PRODLOC.DTULTENT DTULTCOMP,
    CAD_PRODLOC.QTDULTENT QTDULTCOMP,
    VEN_PRODFIL.CUSTONF VLRULTCOMP,
    0 ESTQDIAS,
    0 ESTQQTD,
    VEN_PRODFIL.CMUP CUSTOATUAL,
    CAD_PRECO.PRECO VLRVENDA,
    VEN_PRODFIL.CUE CUSTO
    FROM CAD_PRECO,
    VEN_PRODFIL,
    CAD_CODBARRA,
    CAD_EMBAL,
    CAD_ITPROD,
    CAD_PROD,
    CAD_ESPEC,
    CAD_COR,
    CAD_FAMILIA,
    CAD_DIFER,
    CAD_SITPRO,
    CAD_PRODLOC,
    CAD_PRODLOC CAD_PRODLOC_DEP,
    CAD_FORNE,
    CAD_GRUPO,
    CAD_SUBGRUP,
    CAD_TPPROD,
    CAD_TRIBUT
    WHERE CAD_EMBAL.TPEMB IN ('C', 'V', 'T')
    AND (CAD_EMBAL.STATUS 9 OR CAD_EMBAL.STATUS IS NULL)
    AND (CAD_SITPRO.FLCONSULTA 'N')
    AND CAD_PRECO.CODFIL = 999
    AND VEN_PRODFIL.CODFIL = 999
    AND CAD_PRODLOC.CODFIL = 999
    AND CAD_PRODLOC.TPDEPOS = 'D'
    AND CAD_PRODLOC_DEP.CODFIL = 999
    AND CAD_PRODLOC_DEP.CODITPROD = CAD_ITPROD.CODITPROD
    AND CAD_PRODLOC_DEP.TPDEPOS = 'D'
    AND CAD_PRODLOC.CODITPROD = CAD_ITPROD.CODITPROD
    AND CAD_ESPEC.CODFAM = CAD_ITPROD.CODFAM
    AND CAD_ESPEC.ESPECIFIC = CAD_ITPROD.ESPECIFIC
    AND CAD_COR.CODCOR = CAD_ITPROD.CODCOR
    AND CAD_EMBAL.CODPROD = CAD_PROD.CODPROD
    AND CAD_PRECO.CODEMBAL = CAD_EMBAL.CODEMBAL
    AND CAD_PRECO.CODITPROD = CAD_ITPROD.CODITPROD
    AND CAD_PROD.CODPROD = CAD_ITPROD.CODPROD
    AND CAD_PROD.DIFER = CAD_DIFER.DIFER
    AND VEN_PRODFIL.CODPROD = CAD_PROD.CODPROD
    AND CAD_FAMILIA.CODFAM = CAD_ITPROD.CODFAM
    AND CAD_FAMILIA.CODLINHA = CAD_ITPROD.CODLINHA
    AND CAD_PRECO.CODSITPROD = CAD_SITPRO.CODSITPROD
    AND CAD_CODBARRA.CODITPROD = CAD_ITPROD.CODITPROD
    AND CAD_CODBARRA.CODEMBAL = CAD_EMBAL.CODEMBAL
    AND CAD_ITPROD.CODGRUPO = CAD_GRUPO.CODGRUPO
    AND CAD_ITPROD.CODSUBGP = CAD_SUBGRUP.CODSUBGP
    AND CAD_FORNE.CODFORNE = CAD_ITPROD.CODFORNE
    AND CAD_FAMILIA.CODFAM = CAD_GRUPO.CODFAM
    AND CAD_FAMILIA.CODFAM = CAD_SUBGRUP.CODFAM
    AND CAD_TPPROD.ESPECIAL = CAD_PROD.ESPECIAL
    AND CAD_TRIBUT.CTF = CAD_PROD.CTF
    AND (CAD_PROD.FLPRODRESIPI = 'N' OR CAD_PROD.FLPRODRESIPI IS NULL)
    "UNION ALL"
    SELECT CAD_ITPROD.CODPRODDF CODIGO,
    ' ' PRODUTO,
    0 CODGRUPO,
    ' ' DESCGRUPO,
    ' ' FORNECEDOR,
    EXTRACT(MONTH FROM DTVENDA) MVENDAS1,
    EXTRACT(YEAR FROM DTVENDA) YVENDAS1,
    NULL DTULTCOMP,
    0 QTDULTCOMP,
    0 VLRULTCOMP,
    0 ESTQDIAS,
    0 ESTQQTD,
    0 CUSTOATUAL,
    0 VLRVENDA,
    0 CUSTO
    FROM EST_PROD
    INNER JOIN CAD_ITPROD ON (EST_PROD.CODITPROD = CAD_ITPROD.CODITPROD)
    WHERE TPDATA = 0
    AND DTVENDA >
    TO_DATE('2011-03-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
    GROUP BY EXTRACT(MONTH FROM DTVENDA),
    EXTRACT(YEAR FROM DTVENDA),
    CAD_ITPROD.CODPRODDF) RES
    ORDER BY RES.CODIGO

    e o resultado foi o seguinte