Pular para o conteúdo
Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #107302
    Avatar de Ronnie Von Pereira LopesRonnie Von Pereira Lopes
    Participant

      Amigos Bom dia!
      Tenho um desafio dos grandes, numa SQL eu tenho vários produtos repetidos uns vem com QTD e outros vem com valor )0, eu preciso agrupar esses produtos.
      SQL
      SELECT
      TRUNC(SUM(TITMMOV.QUANTIDADEORIGINAL * (TITMMOVRATCCU.PERCENTUAL/100) ),6) QUANTIDADE,
      TITMMOV.CODUND,
      TPRD.CODIGOPRD,
      TPRD.NOMEFANTASIA,
      MTAREFA.CODTRF || ‘ – ‘ || MTAREFA.NOME AS TAREFA,
      CASE
      WHEN RANK() OVER (PARTITION BY MTAREFA.CODTRF, MABCISM.IDISM ORDER BY TITMMOV.IDPRD) = 1 THEN SUM(NVL( (MABCISM.QUANTIDADE + MABCISM.QTDEIMPRODUTIVA) / NVL(TUND.FATORCONVERSAO,1) ,MTAREFA.QUANTIDADE))
      ELSE 0
      END AS QTDE_SOLUM,
      CASE WHEN RANK() OVER (PARTITION BY MTAREFA.CODTRF, MABCISM.IDISM ORDER BY TPRD.CODIGOREDUZIDO) = 1 THEN
      SUM (MABCISM.QUANTIDADE + MABCISM.QTDEIMPRODUTIVA) / NVL(TUND.FATORCONVERSAO,1) ELSE 0 END AS QTDE_SOLUMNAOAGRUP,

      MABCISM.IDISM

      FROM TITMMOV
      LEFT JOIN TPRD
      ON TITMMOV.CODCOLIGADA = TPRD.CODCOLIGADA
      AND TITMMOV.IDPRD = TPRD.IDPRD
      JOIN (SELECT DISTINCT TCITMORCAMENTO.CODCOLIGADA,
      TCITMORCAMENTO.IDPRD,
      TCITMORCAMENTO.IDMOV,
      TCITMORCAMENTO.NSEQITMMOV,
      TCITMORCAMENTO.CODCOTACAO
      /* TCITMORCAMENTO.VALCOTACAO */
      FROM TCITMORCAMENTO
      INNER JOIN TCCOTACAOITMMOV TI ON TI.CODCOTACAO = TCITMORCAMENTO.CODCOTACAO AND TI.IDMOV = TCITMORCAMENTO.IDMOV
      AND TI.NSEQITMMOV = TCITMORCAMENTO.NSEQITMMOV AND TI.CODCOLIGADA = TCITMORCAMENTO.CODCOLIGADA
      AND TI.CODCOLMOV = TCITMORCAMENTO.CODCOLMOV
      WHERE TCITMORCAMENTO.CODCOTACAO = ‘2015.000097’
      AND TCITMORCAMENTO.CODCOLIGADA = ‘1’
      AND TI.TIPOMOVCOMPRAS <> -1
      ) TBTCITMORCAMENTO
      ON TBTCITMORCAMENTO.CODCOLIGADA = TITMMOV.CODCOLIGADA
      AND TBTCITMORCAMENTO.IDPRD = TITMMOV.IDPRD
      AND TBTCITMORCAMENTO.IDMOV = TITMMOV.IDMOV
      AND TBTCITMORCAMENTO.NSEQITMMOV = TITMMOV.NSEQITMMOV
      JOIN TMOV
      ON TMOV.CODCOLIGADA = TITMMOV.CODCOLIGADA
      AND TMOV.IDMOV = TITMMOV.IDMOV

      LEFT JOIN TITMMOVRATCCU ON TITMMOV.CODCOLIGADA = TITMMOVRATCCU.CODCOLIGADA AND TITMMOV.IDMOV = TITMMOVRATCCU.IDMOV AND TITMMOV.NSEQITMMOV = TITMMOVRATCCU.NSEQITMMOV
      LEFT JOIN MTAREFA ON TITMMOVRATCCU.CODCOLIGADA = MTAREFA.CODCOLIGADA AND TITMMOVRATCCU.IDPRJ = MTAREFA.IDPRJ AND TITMMOVRATCCU.IDTRF = MTAREFA.IDTRF

      LEFT JOIN GCCUSTO ON GCCUSTO.CODCOLIGADA=TITMMOVRATCCU.CODCOLIGADA AND GCCUSTO.CODCCUSTO=TITMMOVRATCCU.CODCCUSTO

      LEFT JOIN MISMPRD
      ON TPRD.CODCOLIGADA = MISMPRD.CODCOLIGADA
      AND TITMMOV.IDPRJ = MISMPRD.IDPRJ
      AND TPRD.IDPRD = MISMPRD.IDPRD

      LEFT JOIN MABCISM
      ON MTAREFA.CODCOLIGADA = MABCISM.CODCOLIGADA
      AND MTAREFA.IDPRJ = MABCISM.IDPRJ
      AND MTAREFA.IDTRF = MABCISM.IDOBRA
      AND MISMPRD.IDISM = MABCISM.IDISM

      LEFT JOIN TUND
      ON TPRD.CODUNDCOMPRA = TUND.CODUND

      WHERE TITMMOV.CODCOLIGADA = ‘1’
      AND TBTCITMORCAMENTO.CODCOTACAO = ‘2015.000097’

      GROUP BY
      TITMMOV.CODUND,
      TPRD.CODIGOREDUZIDO,
      TPRD.NOMEFANTASIA,
      TPRD.NUMEROCCF,
      TITMMOV.IDPRD,
      MABCISM.IDISM,
      TBTCITMORCAMENTO.CODCOTACAO ,
      /* TBTCITMORCAMENTO.VALCOTACAO,*/
      MTAREFA.CODTRF || ‘ – ‘ || MTAREFA.NOME,
      MTAREFA.CODTRF,
      MABCISM.QUANTIDADE,
      MABCISM.QTDEIMPRODUTIVA,
      TUND.FATORCONVERSAO,
      GCCUSTO.CODREDUZIDO,
      TPRD.CODIGOPRD

      ORDER BY 4

      Resultado

      Qtd Produto Descrição Atividade Descricao Qtd
      600 IN.01.001.001.001 BARRA DE ACO CA-25 1″ 02.01.02.02.01.01 – Fabricação de pilares 0
      125 IN.01.001.001.001 BARRA DE ACO CA-25 1″ 02.01.02.02.01.01 – Fabricação de pilares 0
      87 IN.01.001.001.004 BARRA DE ACO CA-25 02.01.02.02.01.01 – Fabricação pré-moldad 0
      276 IN.01.001.001.007 BARRA DE ACO CA-40 02.01.02.02.01.01 – Fabricação pré-moldad 0
      1127 IN.01.001.001.007 BARRA DE ACO CA-40 02.01.02.01.02.06 – Armação CA-50 A 16458,75
      5703 IN.01.001.001.008 BARRA DE ACO CA-50 02.01.02.01.02.06 – Armação CA-50 A 0

      Eu preciso que mesmo sendo diferente o sistema soma o produto, nao preciso da Atividade e Descrição

      Resultado Esperado

      Qtd Produto Descrição Atividade Descricao Qtd
      725 IN.01.001.001.001 BARRA DE ACO CA-25 1″ 02.01.02.02.01.01 – Fabricação de pilares 0
      87 IN.01.001.001.004 BARRA DE ACO CA-25 02.01.02.02.01.01 – Fabricação pré-moldad 0
      1127 IN.01.001.001.007 BARRA DE ACO CA-40 02.01.02.01.02.06 – Armação CA-50 A 16458,75
      5703 IN.01.001.001.008 BARRA DE ACO CA-50 02.01.02.01.02.06 – Armação CA-50 A 0

      Eu gostaria de ter esse resultado.
      Obrigado a todos

      #107303
      Avatar de Rodrigo MesquitaRodrigo Mesquita
      Participant

        Você deve tirar a quantidade do group by e incluir a função SUM nessa coluna.

      Viewing 2 posts - 1 through 2 (of 2 total)
      • You must be logged in to reply to this topic.
      plugins premium WordPress