Cadastro de Produtos - Produtos com quantidade BLOQUEADA diferente da quantidade de RESERVAS

Criado por Pedro Nascimento em 15/08/2022 11:52  ·  Atualizado em 15/08/2022 12:04  ·  Leitura: 2 min

Situação: Como identificar produtos com quantidade BLOQUEADA diferente da quantidade de RESERVAS

 

 

Solução

 --> Select para identificar produtos com quantidade BLOQUEADA diferente da quantidade de RESERVAS

select COMPPROD.CODPROD, PRODUTO.DESCRICAO, COMPPROD.ESTOQUE, COMPPROD.QUANTBLOQUEADA,
(coalesce((select sum(RESERVASI.QUANTIDADE)
from RESERVASI
join RESERVASC on RESERVASC.CODEMPRESA = COMPPROD.CODEMPRESA and RESERVASC.CODRESERVA = RESERVASI.CODRESERVA and RESERVASI.CODPROD = COMPPROD.CODPROD and RESERVASI.CODGRADE = COMPPROD.CODGRADE), 0)) as QUANTRESERVADA
from COMPPROD
join PRODUTO on PRODUTO.CODPROD = COMPPROD.CODPROD
where COMPPROD.QUANTBLOQUEADA <> coalesce((select sum(RESERVASI.QUANTIDADE)
from RESERVASI
join RESERVASC on RESERVASC.CODEMPRESA = COMPPROD.CODEMPRESA and RESERVASC.CODRESERVA = RESERVASI.CODRESERVA and RESERVASI.CODPROD = COMPPROD.CODPROD and RESERVASI.CODGRADE = COMPPROD.CODGRADE),0)

 

 

-->  Update para correção dos produtos identificados na query acima

update COMPPROD
set COMPPROD.QUANTBLOQUEADA = coalesce((select sum(RESERVASI.QUANTIDADE)
from RESERVASI
join RESERVASC on RESERVASC.CODRESERVA = RESERVASI.CODRESERVA
where RESERVASC.CODEMPRESA = COMPPROD.CODEMPRESA and
RESERVASI.CODPROD = COMPPROD.CODPROD and
RESERVASI.CODGRADE = COMPPROD.CODGRADE), 0)
where COMPPROD.QUANTBLOQUEADA <> coalesce((select sum(RESERVASI.QUANTIDADE)
from RESERVASI
join RESERVASC on RESERVASC.CODRESERVA = RESERVASI.CODRESERVA
where RESERVASC.CODEMPRESA = COMPPROD.CODEMPRESA and
RESERVASI.CODPROD = COMPPROD.CODPROD and
RESERVASI.CODGRADE = COMPPROD.CODGRADE),0)