Fazer calculo da média movel com datas
Olá pessoal, estou com um problema e preciso de uma luz, tenho uma tabela com valores e datas (em datetime) que tem datas desde o começo do mês até o final, nos respectivos dias de compras ex: 2015-12-22, 2015-12-26 e por ai vai, preciso criar uma query ou uma function que retorne os calculos dessas datas pela média movel, ou seja, se eu quero a média movel do começo do dia primeiro, então eu pego cada data e divido pela quantidade de dias que eu quero saber a média movel, então tem um resultado, só que preciso que essa query ou function retorne todos os pontos calculados, ou seja, pegando o exemplo do dia 22, eu quero saber o do mês 12, logo seria o valor total do campo de compra daqueles dias, dividido por 22, preciso de uma query que retorne esse calculo dos dias pra mim, alguém tem alguma luz de como eu poderia fazer isso? Não obtive êxito na minhas tentativas...
Patrick
Curtidas 0
Respostas
Edson Venancio
27/12/2015
Da uma lida nesse link man talvez abstraia algo ..[url:descricao=http://www.caelum.com.br/apostila-java-testes-xml-design-patterns/refatoracao-os-indicadores-da-bolsa/#6-4-exercicios-criando-indicadores]http://www.caelum.com.br/apostila-java-testes-xml-design-patterns/refatoracao-os-indicadores-da-bolsa/#6-4-exercicios-criando-indicadores[/url]
GOSTEI 0
Patrick
27/12/2015
Da uma lida nesse link man talvez abstraia algo ..[url:descricao=http://www.caelum.com.br/apostila-java-testes-xml-design-patterns/refatoracao-os-indicadores-da-bolsa/#6-4-exercicios-criando-indicadores]http://www.caelum.com.br/apostila-java-testes-xml-design-patterns/refatoracao-os-indicadores-da-bolsa/#6-4-exercicios-criando-indicadores[/url]
Olá Edson, eu já tenho esse link, eu abstrai a "lógica" dele, porém não consigo transformar isso em uma function SQL pelo nível de conhecimento... Ai queria algo mais claro, se possível em uma function de exemplo...
GOSTEI 0
Isaac Jose
27/12/2015
GOSTEI 0
Isaac Jose
27/12/2015
Bom dia a todos.
Amigo essa situação não é a mesma desse seu outro post?
https://www.devmedia.com.br/forum/calcular-media-movel-dos-ultimos-30-dias/540659.
Amigo essa situação não é a mesma desse seu outro post?
https://www.devmedia.com.br/forum/calcular-media-movel-dos-ultimos-30-dias/540659.
GOSTEI 0
Patrick
27/12/2015
Olá Isaac, mudou um pouco, porém resolvi criar outro, pra deixar mais claro... Já que o outro estava confuso...
GOSTEI 0
Isaac Jose
27/12/2015
update tabela_com_Dia set qtddiautil = ( select manutencao.fn_Dias_Uteis((select DataInicio = CAST(MAX(BintAno)AS VARCHAR(4))+'-'+ CAST(MAX(tintmes)AS VARCHAR(2))+'-'+ '01' from producao.Tb_AcumProd_PFPJ_Dia) ,(SELECT DataFim = CAST(MAX(BintAno)AS VARCHAR(4))+'-'+ CAST(MAX(tintmes)AS VARCHAR(2))+'-'+ CAST(MAX(tintdia)AS VARCHAR(2)) from tabela_com_Dia a where a.tintMes =(select (max(tintmes)) from tabela_com_Dia ) )))
veja a função eu dou uma data inicio e fim de acordo com o que tenho na tabela de produção e só vc adaptar para ela pegar como dtinicio o max mês -1 do max ano iniciando do dia que vc quiser com isso terá os dias depois e só dividir
GOSTEI 0
Patrick
27/12/2015
update tabela_com_Dia set qtddiautil = ( select manutencao.fn_Dias_Uteis((select DataInicio = CAST(MAX(BintAno)AS VARCHAR(4))+'-'+ CAST(MAX(tintmes)AS VARCHAR(2))+'-'+ '01' from producao.Tb_AcumProd_PFPJ_Dia) ,(SELECT DataFim = CAST(MAX(BintAno)AS VARCHAR(4))+'-'+ CAST(MAX(tintmes)AS VARCHAR(2))+'-'+ CAST(MAX(tintdia)AS VARCHAR(2)) from tabela_com_Dia a where a.tintMes =(select (max(tintmes)) from tabela_com_Dia ) )))
veja a função eu dou uma data inicio e fim de acordo com o que tenho na tabela de produção e só vc adaptar para ela pegar como dtinicio o max mês -1 do max ano iniciando do dia que vc quiser com isso terá os dias depois e só dividir
Não entendi muito bem ainda Isaac...
GOSTEI 0
Alex Lekao
27/12/2015
rapaz, eu nao manjo desse paranaue. kkkkk
mas esta me parecendo que tem que usar recursividade, ai ja eh outro nivel para mim. rsrsr,
vou ficar devendo, desculpe.
mas esta me parecendo que tem que usar recursividade, ai ja eh outro nivel para mim. rsrsr,
vou ficar devendo, desculpe.
GOSTEI 0