Prezados,
Estou com uma dificuldade em criar uma condição para uma variável que armazena a soma de vários campos.
Eu gostaria que quando o valor da variável ORCADO_ATUAL fosse > que o PL.LIMITE esse valor virasse zero.
Para melhor entendimento imaginem o seguinte cenário:
- 1: Na tabela PEX_OE_LIMITE é inserido o limite de um produto que deve ser orçado.
- 2: Na tabela PEX_OE_TEMP é armazenado o valor dos itens orçados por mês e cliente e a variável ORCADO_ATUAL soma todos esses itens e traz o total para comparar com o limite inserido na tabela PEX_OE_LIMITE.
SELECT
M.DEESCRICAO AS NOMEMARCA,
POT.IDPRODUTO,
I.DESCRICAO AS NOMEPRODUTO,
PL.LIMITE,
SUM(
POT.QTATUMES1 +
POT.QTATUMES2 +
POT.QTATUMES3 +
POT.QTATUMES4 +
POT.QTATUMES5 +
POT.QTATUMES6 +
POT.QTATUMES7 +
POT.QTATUMES8 +
POT.QTATUMES9 +
POT.QTATUMES10 +
POT.QTATUMES11 +
POT.QTATUMES12
) AS ORCADO_ATUAL,
SUM(EF.VALORPRECOVENDA *
(
POT.QTATUMES1 +
POT.QTATUMES2 +
POT.QTATUMES3 +
POT.QTATUMES4 +
POT.QTATUMES5 +
POT.QTATUMES6 +
POT.QTATUMES7 +
POT.QTATUMES8 +
POT.QTATUMES9 +
POT.QTATUMES10 +
POT.QTATUMES11 +
POT.QTATUMES12
)
) AS VALORTOTALORCADO_ATUAL
FROM
PEX_OE_TEMP POT
LEFT JOIN PEX_OE_LIMITE PL
ON (POT.IDVENDREPRE = PL.IDVENDREPRE
AND POT.IDPRODUTO = PL.IDPRODUTO)
LEFT JOIN MARCA M
ON (POT.IDMARCA = M.IDMARCA)
LEFT JOIN ITEM I
ON (POT.IDPRODUTO = I.IDITEM)
LEFT JOIN CLIFOREMP CFEV
ON (POT.IDVENDREPRE = CFEV.IDCLIFOREMP)
LEFT JOIN ESTOQUE_FILIAL EF
ON (POT.IDPRODUTO = EF.IDITEM
AND EF.IDFILIAL = 1)
WHERE
POT.IDVENDREPRE = 0669 /*IDVENDREPRE*/
AND PL.LIMITE <> 0
GROUP BY
M.DESCRICAO, POT.IDPRODUTO, I.DESCRICAO, PL.LIMITE
ORDER BY
1,3