Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #107319
    Avatar de EdineiEdinei
    Participante

      Olá pessoal,

      Tenho o seguinte select:
      SELECT
      CAST (PROAUX.CDEMPRESA AS VARCHAR2(20)) CDEMPRESA,
      CAST (PROAUX.CDKIT AS VARCHAR2(20)) CDKIT,
      CAST (PROAUX.CDITENSKIT AS VARCHAR2(80)) CDITENSKIT,
      CAST ((PROAUX.QTESTOQUEITENS) AS VARCHAR2(80)) QTESTOQUEITENS
      FROM
      (SELECT CDEMPRESA, CDKIT, WM_CONCAT(CDPRODUTO) CDITENSKIT , WM_CONCAT(NVL(EST.ESTOQUE,0) - NVL(EST.RESERVADO,0)) QTESTOQUEITENS --SUM (EST.ESTOQUE) - SUM(ABS(EST.RESERVADO))
      FROM
      TBINTPRODUTOKIT PRO
      LEFT JOIN JIVA.TGFEST EST ON EST.CODEMP = PRO.CDEMPRESA AND PRO.CDPRODUTO = EST.CODPROD
      GROUP BY CDEMPRESA,CDKIT) PROAUX;

      Usei a função WM_CONCAT para trazer os estoques dos itens do kit separados por virgula com a intenção de usar o LEAST na view a seguir:

      SELECT
      CAST (PRO.CDEMPRESA AS VARCHAR2(20)) CDEMPRESA,
      CAST ('0' AS VARCHAR2(20)) CDREPRESENTANTE,
      CAST (PRO.CDKIT AS VARCHAR2(20)) CDPRODUTO,
      CAST ('0' AS VARCHAR2(20)) CDITEMGRADE1,
      CAST ('0' AS VARCHAR2(20)) CDITEMGRADE2,
      CAST ('0' AS VARCHAR2(20)) CDITEMGRADE3,
      CAST (least(pro.QTESTOQUEITENS) AS VARCHAR2(20)) QTESTOQUE
      FROM
      VWESTOQUEKIT PRO ;

      No entanto o least só retorna o menor registro quando é separado por vírgulas,
      como está vindo entre aspas ”, não consigo mostrar o menor.
      select least('4,77,358,1921,570,77,174,1,129') from dual;
      select least(4,77,358,1921,570,77,174,1,129) from dual;

      Obs: não estou usando os exmeplos com o DUAL.
      Preciso de algo que converta o campo QTESTOQUEITENS da primeira view para Number
      ou algo do tipo para o least poder comparar.

      #107320
      Avatar de rmanrman
      Participante

        @Edinei

        WM_CONCAT? LEAST? VIEW? CAST?

        Apenas a FUNCTION MIN não resolve todo o problema?

        #107321
        Avatar de EdineiEdinei
        Participante

          Não pois, um KIT de produto possui vários itens e tanto o KIT quanto os itens do KIT estão na TGFEST e preciso retornar somente o estoque dos itens do KIT. Nesse caso cada item gera uma linha no banco ao qual estou integrando. Usei o WM_Concat para trazer em uma única linha estes estoques e depois iria usar o LEAST.

          #107322
          Avatar de rmanrman
          Participante

            @Edinei

            Não entendi o que você precisa trazer ainda…

            Você está trazendo uma lista de produto e uma lista de estoque do produto, e está tentando aplicar o LEAST para pegar o menor item na lista de estoque do produto. Não consegui ver sentido nisso.

            O que realmente a sua consulta como um todo deve trazer?

            #107323
            Avatar de EdineiEdinei
            Participante

              preciso trazer o menor numero do –>> CAST (least(pro.QTESTOQUEITENS) AS VARCHAR2(20)) QTESTOQUE

              sendo que o campo pro.QTESTOQUEITENS vem com vários números separados por vírgulas. Preciso retornar o menor.

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.
            plugins premium WordPress