- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 9 anos, 10 meses atrás por rman.
-
AutorPosts
-
16 de janeiro de 2015 às 10:23 pm #107294Ronnie Von Pereira LopesParticipante
Boa Tarde!
Prezados, na SQL abaixo eu tenho resultado que eu preciso, porem tem um campo que vem repetido, eu preciso que quanto o valor de IDISM seja repetido apareça somente uma vez.
SQL
SELECT
SUM(NVL( MABCISM.QUANTIDADE + MABCISM.QTDEIMPRODUTIVA,MTAREFA.QUANTIDADE)) AS QTDE_SOLUM,
SUM (NVL((
SELECT
TRUNC(SUM(TITMMOV.QUANTIDADE * (TITMMOVRATCCU.PERCENTUAL/100) ),6)
FROM TITMMOV
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
WHERE TITMMOV.CODCOLIGADA = MABCISM.CODCOLIGADA
AND TITMMOV.IDPRJ = MABCISM.IDPRJ
AND TITMMOV.IDTRF = MABCISM.IDOBRA
AND TITMMOV.IDPRD = TPRD.IDPRD
AND TMOV.CODTMV LIKE ‘1.2%’
),0)) AS COMPRAS_PRD,MABCISM.IDPRJ,
MABCISM.IDISMFROM 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
WHERE TCITMORCAMENTO.CODCOTACAO = ‘2015.000100’
AND TCITMORCAMENTO.CODCOLIGADA = ‘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.IDISMLEFT JOIN TUND
ON TPRD.CODUNDCOMPRA = TUND.CODUND
WHERE TITMMOV.CODCOLIGADA = ‘1’
AND TBTCITMORCAMENTO.CODCOTACAO = ‘2015.000100’
GROUP BY
TITMMOV.CODUND,
TPRD.CODIGOREDUZIDO,
TPRD.NOMEFANTASIA,
TPRD.NUMEROCCF,
TITMMOV.IDPRD,
MABCISM.IDISM,
TBTCITMORCAMENTO.CODCOTACAO ,
MABCISM.IDPRJ,
MABCISM.IDISM,
TUND.FATORCONVERSAO,
GCCUSTO.CODREDUZIDO
ORDER BY 4Resultado
QTD D Projeto IDISM
60359,25 0 1638 337665
60359,25 0 1638 337665
60359,25 0 1638 337665
60359,25 0 1638 337665
57485 0 1638 337667Resultado Esperado
QTD D Projeto IDISM
60359,25 0 1638 337665
0 0 1638 337665
0 0 1638 337665
0 0 1638 337665
57485 0 1638 337667Repetiu o IDISM 337665 por isso precisa trazer q quantidade somente 1 vez.
Obrigado Amigos pela Ajuda.
16 de janeiro de 2015 às 11:01 pm #107295rmanParticipante@Ronnie Von Pereira Lopes
Existe alguma relação entre as tabelas de 1 para N que está sendo feito o JOIN sem necessidade. Lembrando que só é necessário fazer JOIN de uma tabela que você precisa trazer dados dela. Se você fez o JOIN da tabela apenas com a intenção de fazer o filtro, remova a tabela do JOIN e utilize EXISTS.
-
AutorPosts
- Você deve fazer login para responder a este tópico.