Tenho a seguinte query, e gostaria que fazer um update na coluna estoque atual com o valor recebido em Total Ideal a partir da query abaixo.
Select
produtos.codProduto,
empresasprodutos.emprEstoqueInicialInventario As InventarioInicial,
(Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto) As Entrada,
(Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Sim' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto) As DevolucaoEntrada,
(Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Sim' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto) As TransferenciaEntrada,
(Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto) As Saida,
(Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Sim' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto) As SaidaDevolucao,
(Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Sim' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto) As SaidaTransferencia,
empresasprodutos.emprEstoqueAtual As EstoqueAtual,
IfNull(empresasprodutos.emprEstoqueInicialInventario, 0) + (IfNull((Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto), 0)) + (IfNull((Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Sim' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto), 0)) + (IfNull((Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Sim' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto), 0)) - (IfNull((Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto), 0)) - (IfNull((Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Sim' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto), 0)) - (IfNull((Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Sim' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto), 0)) As TotalIDEAL
From
produtos
Left Join
empresasprodutos On produtos.codProduto = empresasprodutos.emprCodProduto
Where
IfNull(empresasprodutos.emprEstoqueInicialInventario, 0) + (IfNull((Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto), 0)) + (IfNull((Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Sim' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto), 0)) + (IfNull((Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Sim' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto), 0)) - (IfNull((Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto), 0)) - (IfNull((Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Sim' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto), 0)) - (IfNull((Select Sum(saidasprodutos.saidQuantidade) From saidasprodutos Left Join saidas On saidas.saidNumeroPreVenda = saidasprodutos.saidNumeroPreVenda Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = saidas.saidCodOperacaoVenda Where (saidasprodutos.saidCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Sim' Or operacoescomprasvendas.operTransferencia Is Null) And (saidas.saidProcessada = 'Sim') And (saidas.saidCancelada = 'Não' Or saidas.saidCancelada Is Null) Group By saidasprodutos.saidCodProduto), 0)) <> IfNull(empresasprodutos.emprEstoqueAtual, 0)
Order By
(Select Sum((round(IfNull(entradasprodutos.entrQuantidade, 1), 2) * round(IfNull(entradasprodutos.entrQuantidadeEmbalagem, 1), 2))) From entradasprodutos Left Join entradas On entradas.codEntradas = entradasprodutos.entrCodEntradas Left Join operacoescomprasvendas On operacoescomprasvendas.codOperacaoVenda = entradas.entrCodOperacaoVenda Where (entradasprodutos.entrCodProduto = produtos.codProduto) And (operacoescomprasvendas.operEstoque = 'Sim' Or operacoescomprasvendas.operEstoque Is Null) And (operacoescomprasvendas.operDevolucao = 'Não' Or operacoescomprasvendas.operDevolucao Is Null) And (operacoescomprasvendas.operTransferencia = 'Não' Or operacoescomprasvendas.operTransferencia Is Null) And (entradas.entrProcessado = 'Sim') And (entradas.entrCancelada = 'Não' Or entradas.entrCancelada Is Null) Group By entradasprodutos.entrCodProduto) Desc