Parabéns pelo vídeo, sou tb fã de otimizar as consultas e convicto que podemos entregar sempre resultado praticamente pronto.
@mqfs2 жыл бұрын
Shooow, fico feliz de saber que tem mais pessoas que pensam assim!! hehehe
@JwkQroz3 жыл бұрын
Excelente vídeo
@mqfs3 жыл бұрын
Valeeeeu 💪🏻💪🏻💪🏻💪🏻
@autogere4 жыл бұрын
O melhor!
@mqfs4 жыл бұрын
Valeeeu!!
@josefranciscosilva71514 жыл бұрын
Extraordinário!!!
@mqfs4 жыл бұрын
Valeeeeeu!!!
@urmenyi4 жыл бұрын
Aplausos. Bela aula. Muitas vezes a gente fica contente por solucionar um problema e segue em frente, julgando o dever cumprido. Mas isso não basta. É preciso otimizar o trabalho. Aqui contigo aprende-se, inclusive, disciplina pessoal. Obrigado.
@mqfs4 жыл бұрын
Valeeeeu 💪🏻💪🏻💪🏻💪🏻
@eduardosuruagy4 жыл бұрын
Muito massa...
@mqfs4 жыл бұрын
Valeeeeu 💪🏻💪🏻💪🏻💪🏻
@fernando-21603 жыл бұрын
Teria algum problema caso fosse usado o CASE WHEN ou DECODE no lugar do IIF? 🤔
@mqfs3 жыл бұрын
opa, problema nenhum.. O decode e o case dão mais opções de checagens, inclusive. Pode usar sem problemas
@fernando-21603 жыл бұрын
@@mqfs Hmmm, então usando esse técnica do SUM condicional dá para minimizar o uso de procedures que realizam cálculo de saldo em uma tacada só, com uma consulta normal, por exemplo.
@mqfs3 жыл бұрын
Exato!! Fica bem melhor
@sergiofigueiredo37022 жыл бұрын
Muito bom! O IIF não aceita -e.quantidade ? Resolveria com a metade do codigo. É possivel ?
@mqfs2 жыл бұрын
Opa, aceita sim, mas só descobri isso depois da época da postagem desse vídeo... kkkk
@daviseer51163 жыл бұрын
com setar dados pelo MySQL? (no caso do :pDataInicial, por exemplo?)
@mqfs3 жыл бұрын
opa, não manjo muito de MySQL pra poder te dar certeza, mas achei esse link aqui que pode te ajudar: forum.scriptbrasil.com.br/topic/157857-resolvido-fun%C3%A7%C3%A3o-com-query-usando-par%C3%A2metros/ fala sobre criar variável e referenciar com @ na frente.
@servoleonardo3 жыл бұрын
Seria possível fazer essas acumulações a nível de registro?? Ex: Produto código 1 01/01 entrada de estoque, estoque inicial 0, estoque final 0 02/01 inventario de estoque, estoque inicial 0, estoque final 10 03/01 venda ao cliente, estoque inicial 10, estoque final 5 não sei se ficou claro mas seria isso.
@mqfs3 жыл бұрын
opa, dá pra fazer sim, seria o caso de remover o agrupamento e tirar o sum de todos os campos, daí viria registro a registro.
@servoleonardo3 жыл бұрын
@@mqfs Mas ai ele nao traria o estado do estoque inicial para cada registro, somente a quantidade aferida...
@mqfs3 жыл бұрын
hmmm cara, realmente, pra fazer isso registro a registro teria que calcular o saldo inicial separado, e jogar pra uma variável, isso teria que ser feito via PSQL mesmo
@dreamsoftware3298 Жыл бұрын
oi, uma outra duvida alem do log, por exemplo a tabela produto vc tem o campo estoque que + ou - a cada saida a quantidade ?
@mqfs Жыл бұрын
Opa, não, porque manter o saldo de estoque na tabela produto vai com certeza causar lock conflict quando entrar em produção
@dreamsoftware3298 Жыл бұрын
@@mqfs entao quando o cliente quer saber o estoque atual vc faz essa varredura na tabela movimento
@mqfs Жыл бұрын
Movimento não, log estoque. Tem um vídeo que mostro como trabalhar com quantidades grandes de dados:, que serve pra essa situação kzbin.info/www/bejne/moDYlKZmqMmfa9U
@valmirgomesribeiro2 жыл бұрын
MQFS - estes codigos não tem como disponilizar ? ou se você já faz onde pego ? obrigado.
@mqfs2 жыл бұрын
Opa, todos os scripts estão disponíveis no meu banco. Veja esse link: mqfs.com.br/ > Menu > Acesse meu banco
@dreamsoftware32983 жыл бұрын
uma duvida quando vc faz uma venda, vc inseri nesse log, e quando deleta ou modifica a venda, vc deleta o registro ou da uma entrada nessa LOG
@mqfs3 жыл бұрын
Opa, a ideia é sempre inserir, se mudar a quantidade de 2 pra 1, deve registrar a saída de 1 e o motivo que foi modificação da venda
@marioaugusto23522 жыл бұрын
Excelente aula, seria possível fazer também já com preço ponderado de cada produto?
@joaopoliceno88442 жыл бұрын
Olá Edson, vc sabe me informar quais system tables fornecem esse dados ? Current memory = 19570960 Delta memory = 0 Max memory = 19652528 Elapsed time = 0.001 sec Buffers = 2048 Reads = 0 Writes = 0 Fetches = 48
@mqfs2 жыл бұрын
Opa, algumas dessas informações ficam disponíveis aqui: kzbin.info/www/bejne/oHzbfHmVg79sprc
@joseronaldosilveiramiguel89482 жыл бұрын
Bom dia Edson, eu estou com um problema, se vc puder me dar uma luz.. Eu preciso fazer o calculo do estoque, porém com varias tabelas, uma de estoque, igual a essa do video, com E ou S, outra de pedidos, uma outra de compras, e outra de facção, que seria entrada tbm. O que eu fiz até que não é tão lento, mas tenho um cliente que esta gravando um pedido com mais de 200 itens, e o procedure que eu fiz e consultado pela trigger pra atualizar o banco. Tem alguma coisa que eu poderia fazer para melhorar esse calculo de estoque?
@jesuelkler4 жыл бұрын
CAbra é bixo solto kkkkkkkkkkkkkkkkk [ÇUÇEÇÇU]
@mqfs4 жыл бұрын
Kkkkkkkkkkkkkkkkk
@josemartavares70472 жыл бұрын
Depois de algum tempo já achei esse vídeo e achei TOP, parabéns!!! Mas caso haja mais uma tabela de movimentos tipo só de saídas, teria como adicionar mais um select para trazer estas quantidades e somar junto as quantidades já apuradas, tentei aqui, mas por não ter todo esse conhecimento, não tive sucesso, abs?
@josemartavares70472 жыл бұрын
acho que resolvi aqui fazendo um union, ficou assim: /* foi criado os indices no movimentoitem por idproduto e dataentrada */ select a.idproduto, p.nome, a.saldo_inicial, a.entradas_mes, a.saidas_mes, a.saldo_inicial + a.entradas_mes - a.saidas_mes saldo_final_calc from ( select e.idproduto, sum(iif(substring(e.tipomovimento from 1 for 1) = 'E' and e.dataentrada < :pDatainicial,e.qtditemestoque,0)) - sum(iif(substring(e.tipomovimento from 1 for 1) = 'S' and e.dataentrada < :pDatainicial,e.qtditemestoque,0)) saldo_inicial, sum(iif(substring(e.tipomovimento from 1 for 1) = 'E' and e.dataentrada between :pDatainicial and :pDataFinal, e.qtditemestoque, 0)) entradas_mes, sum(iif(substring(e.tipomovimento from 1 for 1) = 'S' and e.dataentrada between :pDatainicial and :pDataFinal, e.qtditemestoque, 0)) saidas_mes from movimentoitem e where e.dataentrada