Jump to content

tiago.uepa

Members
  • Content count

    9
  • Joined

  • Last visited

Community Reputation

0 Comum

About tiago.uepa

  • Birthday 04/04/1983

Informações Pessoais

  • Sexo
    Masculino
  1. tiago.uepa

    Utilizar varias linhas retornadas pelo NVL

    Bom dia, Não lê. Eu mudei o rateio para apenas 1 e assim ele lê, então é como ele não reconhecer depois da virgula, ou reconhecer tudo como uma unica string.
  2. tiago.uepa

    Utilizar varias linhas retornadas pelo NVL

    Boa tarde, Fiz uma tentativa com o LISTAGG, e consegui eliminar o erro: ORA-01427: a subconsulta de uma única linha retorna mais de uma linha agora retorna em uma unica linha, mas a query acima não lê, talvez alguma formatação resolva? tentei usar to_char, to_number mas não foi.. NVL( (SELECT LISTAGG(R1.CODCENCUS, ',') WITHIN GROUP (ORDER BY R1.CODCENCUS) FROM TGFRAT R1 JOIN TGFFIN F1 ON (R1.NUFIN =(CASE WHEN F1.ORIGEM = 'E' THEN F1.NUNOTA ELSE F1.NUFIN END)) WHERE F1.NUFIN = F.NUFIN ) , F.CODCENCUS) resultado em unica linha: 2010301,2020209
  3. tiago.uepa

    Utilizar varias linhas retornadas pelo NVL

    Boa tarde Motta, Então pelo que vi o problema está na saída do NVL, sem o NVL o relatório funciona. O sub sql está certo, não tenho dados duplicados, poderia ter dados duplicados pois na query acima estou utilizando operador IN, fiz os testes digitando os dados no lugar no NVL e funcionou. Você comentou do subselect como coluna só pode retornar um valor, vou verificar se consigo tratar o retorno transformando em linha com separador ',' Vou testar e posto o resultado. Obrigado.
  4. Boa noite galera, Desculpe minha pergunta, mas já quebrei bastante a cabeça e não encontro a solução. Tenho um relatório onde preciso ler o centro de resultado do rateio caso exista, se não, ler o centro de resultado do lançamento. Então utilizei o NVL: NVL( (SELECT R1.CODCENCUS FROM TGFRAT R1 JOIN TGFFIN F1 ON (R1.NUFIN=(CASE WHEN F1.ORIGEM = 'E' THEN F1.NUNOTA ELSE F1.NUFIN END)) WHERE F1.NUFIN = F.NUFIN GROUP BY R1.CODCENCUS) , F.CODCENCUS) Executando apenas o select o resultado é exibido corretamente: 2020209 2010301 Mas quando uso o retorno do NVL para a query acima vem o erro: ORA-01427: a subconsulta de uma única linha retorna mais de uma linha Se eu digito os resultados manualmente a consulta funciona.
  5. tiago.uepa

    Converter linhas em colunas PIVOT

    Bom dia, É que o CASE que montei retornava linhas zeradas mas em função do range do período, na verdade era dado null. Mas apresentei este com o PIVOT para o Gerente Comercial e já resolveu para analise dele pelo período anual mesmo. Muito obrigado pela ajuda e atenção. abraço
  6. tiago.uepa

    Converter linhas em colunas PIVOT

    Mas a vantagem que já tive do PIVOT em relação ao CASE é que no CASE ele gerava linhas nulas no relatório em função do range do período informado.
  7. tiago.uepa

    Converter linhas em colunas PIVOT

    Então, o não ser dinâmico que complica, pois é para uma analise de acompanhamento de metas de representante, dai o Gerente escolhe o período em um filtro no relatório. Até consegui progredir com o PIVOT tratando apenas por mes, vou tentar agora tratar o ano, se conseguisse tratar este FOR (PERIODO)IN ('01' AS JAN tornando janeiro variavel de acordo com periodo escolhido no filtro do relatório ai daria pra deixá-lo dinamico select * from ( SELECT DISTINCT VEN.APELIDO, TO_CHAR(CAB.DTNEG, 'MM') AS PERIODO, SUM (CASE WHEN (CAB.CODTIPOPER IN (40,44,50,47,87)) THEN ITE.QTDNEG WHEN (CAB.CODTIPOPER IN (13,53,45,58)) THEN ( ITE.QTDNEG * (-1) ) ELSE 0 END )QUANTIDADE FROM TGFCAB CAB JOIN TGFITE ITE ON (ITE.NUNOTA = CAB.NUNOTA ) JOIN TGFPRO PRO ON (PRO.CODPROD = ITE.CODPROD) JOIN TGFVEN VEN ON (VEN.CODVEND=CAB.CODVEND) WHERE (CAB.STATUSNFE = 'A' OR CAB.CODTIPOPER IN (13,53,45,58)) AND (PRO.REFERENCIA IS NOT NULL OR (PRO.REFERENCIA IS NULL AND CAB.CODPARC = '4925' )) AND PRO.USOPROD <> 'M' AND CAB.CODTIPOPER IN (40,44,50,47,87,13,53,45,58) AND CAB.DTNEG BETWEEN '01/12/2015' AND '30/12/2016' AND CAB.CODVEND <>0 GROUP BY VEN.APELIDO, TO_CHAR(CAB.DTNEG, 'MM') ) PIVOT (SUM (QUANTIDADE) AS QUANTIDADE FOR (PERIODO)IN ('01' AS JAN, '02' AS FEV, '03' AS MAR, '04' AS ABR, '05' AS MAI, '06' AS JUN, '07' AS JUL, '08' AS AGO, '09' AS SETB, '10' AS OUTB, '11' AS NOV, '12' AS DEZ ))
  8. tiago.uepa

    Converter linhas em colunas PIVOT

    Boa tarde Motta, Então, eu já tentei usar o pivot, mas não consegui encaixar corretamente dentro da query e o case acredito que nao dá certo pra esse caso pq não posso criar o case indicando os meses pois o período tem que ser dinamico. poderia me ajudar a usar o pivot dentro da minha query? obrigado.
  9. tiago.uepa

    Converter linhas em colunas PIVOT

    Bom dia galera, sou novo aqui no fórum e aprendendo SQL, podem me ajudar a resolver esta query? Preciso transformar o campo "periodo" em coluna, andei pesquisando e tentei usar o PIVOT, mas não consegui encaixá-lo na query: SELECT DISTINCT VEN.APELIDO, TO_CHAR(CAB.DTNEG, 'YYYY"/"MM') AS PERIODO, SUM (CASE WHEN (CAB.CODTIPOPER IN (40,44,50,47,87)) THEN ITE.QTDNEG WHEN (CAB.CODTIPOPER IN (13,53,45,58)) THEN ( ITE.QTDNEG * (-1) ) ELSE 0 END )QUANTIDADE FROM TGFCAB CAB JOIN TGFITE ITE ON (ITE.NUNOTA = CAB.NUNOTA ) JOIN TGFPRO PRO ON (PRO.CODPROD = ITE.CODPROD) JOIN TGFVEN VEN ON (VEN.CODVEND=CAB.CODVEND) WHERE (CAB.STATUSNFE = 'A' OR CAB.CODTIPOPER IN (13,53,45,58)) AND (PRO.REFERENCIA IS NOT NULL OR (PRO.REFERENCIA IS NULL AND CAB.CODPARC = '4925' )) AND PRO.USOPROD 'M' AND CAB.CODTIPOPER IN (40,44,50,47,87,13,53,45,58) AND CAB.DTNEG BETWEEN :PERIODO.INI AND :PERIODO.FIN AND (CAB.CODVEND = :VENDEDOR OR :VENDEDOR IS NULL) AND (PRO.CODPROD = :CODIGOPROD OR :CODIGOPROD IS NULL) AND (CAB.CODEMP =:EMPRESA OR :EMPRESA IS NULL) AND CAB.CODVEND 0 GROUP BY VEN.APELIDO, TO_CHAR(CAB.DTNEG, 'YYYY"/"MM') ORDER BY PERIODO DESC Este é o resultado da query de acordo com PERIODO e outros dados informados pelo usuário nas variáveis: APELIDO PERIODO QUANTIDADE DAVI.REP 12/2015 29 EDSON.REP 12/2015 487 JOSE.REP 12/2015 366 SALVADOR.REP 12/2015 707 DAVI.REP 01/2016 50 EDSON.REP 01/2016 122 JOSE.REP 01/2016 75 SALVADOR.REP 01/2016 373 Mas preciso desta forma: APELIDO 12/2015 01/2016 DAVI.REP 29 50 EDSON.REP 487 122 JOSE.REP 366 75 SALVADOR.REP 707 373
×

Important Information

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