Pular para o conteúdo

Fóruns SQL e PL/SQL Problem Procedure Problem Procedure

#87533
Itimura
Participante

    Thunder…

    Parabéns!

    FUNCIONA!!!!

    ficou assim:

    Criação do Cursor


    create or replace package types
    as
    type CursorType is ref cursor;
    end;

    Procedure:


    create or replace
    PROCEDURE RELAT_REEMBOLSO

    (dtINICIO IN DATE,
    dtFIM IN DATE,
    fORNEC IN NUMBER,
    cCursor OUT TYPES.CursorType) IS

    BEGIN

    OPEN cCursor FOR

    --CAMPO A SEREM BUSCADOS
    SELECT MOV.NUMNOTA       AS "NOTA FISCAL",
           NF.DTSAIDA        AS "DATA DE EMISSAO",
           NF.CONDVENDA      AS "COD VENDA",
           MOV.CODCLI        AS "COD CLIENTE",
           CLI.CLIENTE       AS "CLIENTE",
           MOV.CODFORNEC     AS "COD FORNECEDOR",
           FORNEC.FORNECEDOR AS "FORNECEDOR",
           MOV.CODSEC        AS "COD SEÇÃO",
           SEC.DESCRICAO     AS "DESCRIÇÃO SEÇÃO",
           MOV.CODPROD       AS "COD PRODUTO",
           PRO.DESCRICAO     AS "PRODUTO",
           MOV.QT            AS "QUANTIDADE VENDIDA",
           MOV.PTABELA       AS "PREÇO UNITARIO",
           RCA.CODUSUR       AS "CODIGO RCA",
           RCA.NOME          AS "RCA"
    
    --TABELAS COM ALIAS
    FROM   PCNFSAID NF,
           PCMOV    MOV,
           PCPRODUT PRO,
           PCCLIENT CLI,
           PCFORNEC FORNEC,
           PCSECAO  SEC,
           PCUSUARI RCA
    
    --"JOIN"
    WHERE  NF.NUMNOTA = MOV.NUMNOTA
    AND    MOV.CODPROD = PRO.CODPROD
    AND    MOV.CODCLI = CLI.CODCLI
    AND    FORNEC.CODFORNEC = MOV.CODFORNEC
    AND    SEC.CODSEC = MOV.CODSEC
    AND    RCA.CODUSUR = MOV.CODUSUR
    
          --CONDIÇOES
    AND    NF.DTSAIDA BETWEEN dtINICIO AND dtFIM
    AND    NF.CONDVENDA IN (1, 5)
    AND    MOV.CODFORNEC = fORNEC
    AND    MOV.CODCLI IN
    

    -- POR DESCARGO DE CONCIENCIA.. MUDANDO OS "ALIAS" DAS TABELAS...
    -- VERIFICAR A REAL NECESSIDADE DE REALIZAR O SELECT ABAIXO...
    -- AJUSTANDO PODE-SE OBTER O MESMO RESULTADO APENAS COM O SELECT ACIMA...

           (SELECT NF2.CODCLI
             FROM   PCNFSAID NF2,
                    PCMOV    MOV2,
                    PCPRODUT PRO2,
                    PCCLIENT CLI2
             WHERE  NF2.NUMNOTA    = MOV2.NUMNOTA
             AND    MOV2.CODPROD   = PRO2.CODPROD
             AND    MOV2.CODCLI    = CLI2.CODCLI
             AND    NF2.CONDVENDA||MOV.CODFORNEC = 51 -- AJUSTANDO PARA MELHORAR SEU SELECT...
    

    -- AND NF2.CONDVENDA = 5
    -- AND MOV2.CODFORNEC = 1
    AND NF2.DTSAIDA BETWEEN dtINICIO AND dtFIM)

    ORDER  BY MOV.CODCLI;
    

    END RELAT_REEMBOLSO;

    Valew!@

    Grande abraço []’s