Jump to content

MVlisboa

Members
  • Content count

    22
  • Joined

  • Last visited

Community Reputation

0 Comum

3 Followers

About MVlisboa

  • Birthday 04/17/1993

Informações Pessoais

  • Sexo
    Masculino

Contato

  • Skype
    vinicius_planetaaju
  1. Conseguir da seguinte forma: Criei um TYPE do tipo VARRAY, e passei uma variável do tipo do meu TYPE como parâmetro para a minha PROCEDURE. CREATE OR REPLACE TYPE numberVarray IS VARRAY(50)OF NUMBER; CREATE OR REPLACE PACKAGE BODY CCORRENTE IS PROCEDURE PS_CCORRENTE_DELETA(V_LANC IN numberVarray) IS BEGIN FOR I IN 1..V_LANC.COUNT LOOP DELETE FROM MVCCORRENTE WHERE RECNUM IN (V_LANC(I)); END LOOP; END PS_CCORRENTE_DELETA; END CCORRENTE; BEGIN CCORRENTE.PS_CCORRENTE_DELETA(V_LANC => numberVarray(1, 2, 50, 100)); END;
  2. Motta, o problema é que o usuário precisa informar os valores para o parâmetro, que pode ser (1,2,4,7,10,1000,N) e no caso acima, não tem como fazer isso.
  3. Motta, a chamada do PS é feito por um outro programa. Existe outro sistema do qual chamo a PS por ele e passo os parâmetros, que infelizmente só estou passando um, pois ainda não consegui resolver o problema. Ficaria muito grato se postasse algum exemplo simples usando como base o PS q informei. Estou procurando uma solução em tudo que é canto, mas não consigo montar nada. :/
  4. Em alguns casos seriam mais de 400 valores. Então não seria interessante criar uma variável para cada um.
  5. Como passar mais de um valor para as variáveis passada como parâmetro em uma procedure? CREATE OR REPLACE PROCEDURE PS_CCORRENTE_DELETA(LANC IN NUMBER) IS BEGIN DELETE FROM MVCCORRENTE WHERE RECNUM IN (LANC); END PS_CCORRENTE_DELETA; Como informar mais de um valor para a variável LANC? EX: BEGIN CCORRENTE_DELETA(1,2,3,4,5); END;
  6. MVlisboa

    Cálculo com horas

    Bom dia! Como fazer o calculo de tempo entre intervalos de horas? EX: entrada1 = 08:00, saida1= 12:00, entrada2 = 14:00, saida2 = 18:00 Tenho que ter em uma coluna o resultado do intervalo de tempo entre a entrada1 e saida 1 e depois somar com o intervalo de entrada2 e saida2. EX: (12:00 - 08:00) = 04:00 (18:00 - 14:00) = 04:00 RESULTADO: 08:00
  7. MVlisboa

    Consulta com limite

    Você conseguiria dar um pequeno exemplo?
  8. MVlisboa

    Consulta com limite

    Bom dia, Motta! Seria o seguinte... Quando fazemos um loop, o programa não para quando a condição for true?! Então..seria mais ou menos essa analogia. A minha condição é que a consulta encerre quando SUM(M.QT) atingir o valor de E.QTBLOQUEADA "34". 1 2 3 4 5 Nesse caso, a consulta deveria ir somando SUM(M.QT) (3+1= 4, 4+1= 5, 5+12= 17, 17+12= 29, 29+12= 41, 6 7 8 41+3= 44, 44+2= 46, 46+3= 49) PRONTO, A CONDIÇÃO FOI ATINGIDA NA 5 OPERAÇÃO. ELA DEVE ENCERRAR E NÃO PUXAR AS OUTRAS LINHAS.
  9. MVlisboa

    Consulta com limite

    Eu tenho QT BLOQ q é 34, essa coluna "SOMATÓRIO" são as quantidades de cada NF DEV CLI Mas eu só quero puxar os dados até que a soma de QT atinja o valor bloqueado "QT BLOQ" Nesse caso deveria puxar os seis primeiros dados, que seriam: (NF´S DEV CLI = 1385 - 1385 - 13897 - 1421 - 3883 - 3896) e (SOMATORIO = 3 - 1 - 1 - 12 - 12 - 12)
  10. MVlisboa

    Condições para coluna selecionada

    Vlw Motta!
  11. MVlisboa

    Condições para coluna selecionada

    Motta, como montar um select com a lógica abaixo. SELECIONAR (A.VALOR1 + (B.VALOR2 + VALOR3) SE B.VALOR2=VALOR4 OU (A.VALOR1 + (B.VALOR2 + VALOR5) SE B.VALOR2=VALOR6 FROM TAB A INNER JOIN TAB B ON (A.VALOR7 = B.VALOR8)
  12. MVlisboa

    Trazer o penúltimo valor lançado,m de uma

    (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1) SELECT A.NUMNOTA AS NF, A.CODPROD AS COD, A.DESCRICAO AS DESCRICAO_PRODUTO, NVL(CAST((A.QTUNITCX) AS INT),0) AS UND, NVL(CAST((A.PERCIPI) AS NUMBER(18, 2)),0) AS PERC_IPI, NVL(CAST((A.VLIPI * QTUNITCX) AS NUMBER(18, 2)),0) AS VL_IPI, NVL(CAST((A.PERCDESC) AS NUMBER(18, 2)),0) AS PERC_DESC, NVL(CAST((A.VLDESCONTO * A.QTUNITCX) AS NUMBER(18, 2)),0) AS VL_DESC, NVL(CAST((A.PTABELA * A.QTUNITCX) AS NUMBER(18, 2)),0)AS P_CX, -- DIFERENÇA DE PREÇO-- NVL(CAST(((SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1) * A.QTUNITCX) AS NUMBER(18, 2)),0) AS P_ANT_CX, --PERCENTUAL DA DIFERENÇA-- NVL(CAST((A.PTABELA - (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1)) / (A.PTABELA) * 100 AS NUMBER(18, 2)),0) AS PERC_DIF, -- DIFERENÇA DE PREÇO-- NVL(CAST((A.PTABELA - (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1)) * A.QTUNITCX AS NUMBER(18, 2)),0) AS DIF_PRECO FROM PCMOV A WHERE A.NUMNOTA = 11405 --PUNIT - PTABELA NF ANTERIOR >0.01 OR PTABELA NF ANTERIOR - PUNIT > 0.01-- AND (A.PUNIT - (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1) > 0.01 OR (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1) - A.PUNIT > 0.01) AND A.VALORULTENTANT > 0.01 --USEI "VALORULTENTANT > 0.01" CASO A NF TENHA ALGUM PRODUTO NOVO-- ORDER BY A.PTABELA DESC SELECT A.NUMNOTA AS NF, A.CODPROD AS COD, A.DESCRICAO AS DESCRICAO_PRODUTO, NVL(CAST((A.QTUNITCX) AS INT),0) AS UND, NVL(CAST((A.PERCIPI) AS NUMBER(18, 2)),0) AS PERC_IPI, NVL(CAST((A.VLIPI * QTUNITCX) AS NUMBER(18, 2)),0) AS VL_IPI, NVL(CAST((A.PERCDESC) AS NUMBER(18, 2)),0) AS PERC_DESC, NVL(CAST((A.VLDESCONTO * A.QTUNITCX) AS NUMBER(18, 2)),0) AS VL_DESC, NVL(CAST((A.PTABELA * A.QTUNITCX) AS NUMBER(18, 2)),0)AS P_CX, -- DIFERENÇA DE PREÇO-- NVL(CAST(((SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1) * A.QTUNITCX) AS NUMBER(18, 2)),0) AS P_ANT_CX, --PERCENTUAL DA DIFERENÇA-- NVL(CAST((A.PTABELA - (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1)) / (A.PTABELA) * 100 AS NUMBER(18, 2)),0) AS PERC_DIF, -- DIFERENÇA DE PREÇO-- NVL(CAST((A.PTABELA - (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1)) * A.QTUNITCX AS NUMBER(18, 2)),0) AS DIF_PRECO FROM PCMOV A WHERE A.NUMNOTA = 11405 --PUNIT - PTABELA NF ANTERIOR >0.01 OR PTABELA NF ANTERIOR - PUNIT > 0.01-- AND (A.PUNIT - (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1) > 0.01 OR (SELECT B.PTABELA FROM PCMOV B WHERE B.CODPROD = A.CODPROD AND B.CODOPER = 'E' AND B.DTCANCEL IS NULL AND B.NUMNOTA < (SELECT MAX(C.NUMNOTA) FROM PCMOV C WHERE C.CODPROD = B.CODPROD AND C.CODOPER = B.CODOPER AND C.DTCANCEL IS NULL) AND ROWNUM <=1) - A.PUNIT > 0.01) AND A.VALORULTENTANT > 0.01 --USEI "VALORULTENTANT > 0.01" CASO A NF TENHA ALGUM PRODUTO NOVO-- ORDER BY A.PTABELA DESC
  13. MVlisboa

    Trazer o penúltimo valor lançado,m de uma

    Então... eu sei que dá pra puxar usando uma subquery, mas não estou conseguindo puxar o penúltimo valor real. Tentei fazer da forma abaixo, mas me parece que ele está somando os valores da notas anteriores. SELECT PTABELA FROM PCMOV WHERE NUMNOTA < (SELECT MAX(NUMNOTA) FROM PCMOV WHERE CODPROD = 1814 AND CODOPER = 'E' AND DTCANCEL IS NULL) AND ROWNUM <=1 ORDER BY NUMNOTA DESC
  14. MVlisboa

    Trazer o penúltimo valor lançado,m de uma

    Comecei estudar há 4 meses.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.