- This topic has 1 reply, 2 voices, and was last updated 9 years, 10 months ago by Rodrigo Mesquita.
-
AuthorPosts
-
21 de janeiro de 2015 at 3:58 pm #107302Ronnie Von Pereira LopesParticipant
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.IDMOVLEFT 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.IDTRFLEFT 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.IDPRDLEFT JOIN MABCISM
ON MTAREFA.CODCOLIGADA = MABCISM.CODCOLIGADA
AND MTAREFA.IDPRJ = MABCISM.IDPRJ
AND MTAREFA.IDTRF = MABCISM.IDOBRA
AND MISMPRD.IDISM = MABCISM.IDISMLEFT JOIN TUND
ON TPRD.CODUNDCOMPRA = TUND.CODUNDWHERE 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.CODIGOPRDORDER 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 0Eu 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 0Eu gostaria de ter esse resultado.
Obrigado a todos21 de janeiro de 2015 at 6:22 pm #107303Rodrigo MesquitaParticipantVocê deve tirar a quantidade do group by e incluir a função SUM nessa coluna.
-
AuthorPosts
- You must be logged in to reply to this topic.