Alunos Paulo Cesar Postado Novembro 1, 2021 Alunos Compartilhar Postado Novembro 1, 2021 Bom dia a todos! Preciso de uma ajuda referente a uma Query que traga os últimos 3 meses referente ao mês atual, ou seja, (Agosto, Setembro e Outubro) porque eu preciso disso, porque eu preciso fazer a médias desses ultimos 3 meses. Link para o comentário Compartilhar em outros sites More sharing options...
1 Alunos Michele Postado Novembro 3, 2021 Alunos Compartilhar Postado Novembro 3, 2021 Oi @Paulo Cesar Então, o que te passei vai trazer justamente o que você precisa, pois as fórmulas abaixo retornam o último dia do mês fechado (31/10) e a outra fórmula retornará 3 meses antes (01/08). DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AND DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) SELECT * FROM TABLE_NAME WHERE Date_Column BETWEEN DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AND DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) Testa dessa forma que passei que você vai compreender o que estou falando, inclusive se quiser testar as datas que são retornadas podes fazer assim: SELECT DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)), DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Paulo Cesar Postado Novembro 3, 2021 Autor Alunos Compartilhar Postado Novembro 3, 2021 5 horas atrás, Michele disse: Olá @Paulo Cesar! Com essas duas colunas abaixo você consegue isso de forma dinâmica: DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) AS UltimoDiaMesFechado, DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AS PrimeiroDia3MesesAnteriores Desta forma basta você fazer assim para ter dados entre este intervalo: SELECT ListadeCampos... WHERE CampoData BETWEEN DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AND DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) @Michele, boa tarde! estou usando essa mais está trazendo o mês atual. SELECT * FROM TABLE_NAME WHERE Date_Column >= DATEADD(MONTH, -3, GETDATE()) Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Paulo Cesar Postado Novembro 3, 2021 Autor Alunos Compartilhar Postado Novembro 3, 2021 5 horas atrás, Michele disse: Olá @Paulo Cesar! Com essas duas colunas abaixo você consegue isso de forma dinâmica: DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) AS UltimoDiaMesFechado, DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AS PrimeiroDia3MesesAnteriores Desta forma basta você fazer assim para ter dados entre este intervalo: SELECT ListadeCampos... WHERE CampoData BETWEEN DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AND DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) Preciso trazer os meses 08, 09 e 10 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Paulo Cesar Postado Novembro 3, 2021 Autor Alunos Compartilhar Postado Novembro 3, 2021 5 minutos atrás, Michele disse: Oi @Paulo Cesar Então, o que te passei vai trazer justamente o que você precisa, pois as fórmulas abaixo retornam o último dia do mês fechado (31/10) e a outra fórmula retornará 3 meses antes (01/08). DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AND DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) SELECT * FROM TABLE_NAME WHERE Date_Column BETWEEN DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AND DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) Testa dessa forma que passei que você vai compreender o que estou falando, inclusive se quiser testar as datas que são retornadas podes fazer assim: SELECT DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)), DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) Eu fiz dessa forma Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Paulo Cesar Postado Novembro 3, 2021 Autor Alunos Compartilhar Postado Novembro 3, 2021 DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AND DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) Esse "m" ele quer dizer o que.... Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Michele Postado Novembro 3, 2021 Alunos Compartilhar Postado Novembro 3, 2021 Oi @Paulo Cesar! Tanto faz usar o MONTH ou esse "m", o -1 te retorna o último dia do mês fechado, se deixar 0 vai retornar o primeiro dia do mês atual. Isso é uma fórmula muito usada para obter este tipo de informação, neste link tem um pouco da explicação: https://stackoverflow.com/questions/11665119/dateaddmonth-datediffmonth-0-getdate-0-can-someone-explain-me-this O que você fez parece estar correto, confira se as datas estão dentro do range que você deseja, mas é para estarem, pois as datas que essas funções retornam são exatamente o último dia do mês fechado e o primeiro dia do mês inicial que você deseja. Caso não esteja retornando algo que deveria, passe um exemplo para ficar mais fácil a compreensão. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Paulo Cesar Postado Novembro 5, 2021 Autor Alunos Compartilhar Postado Novembro 5, 2021 Solucionado! obrigado! Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Michele Postado Novembro 5, 2021 Alunos Compartilhar Postado Novembro 5, 2021 Olá @Paulo Cesar! Que ótimo! Consegue marcar a Resposta que lhe ajudou como Solução, para fechar o tópico, por favor? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Paulo Cesar Postado Novembro 9, 2021 Autor Alunos Compartilhar Postado Novembro 9, 2021 Em 05/11/2021 em 20:13, Michele disse: Olá @Paulo Cesar! Que ótimo! Consegue marcar a Resposta que lhe ajudou como Solução, para fechar o tópico, por favor? Bom dia, Aonde eu vejo isso? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Michele Postado Novembro 9, 2021 Alunos Compartilhar Postado Novembro 9, 2021 Oi @Paulo Cesar! Na resposta que quiser marcar, vai ter essa opção aqui, porém ainda "aberta" para marcação. Link para o comentário Compartilhar em outros sites More sharing options...
-1 Alunos Michele Postado Novembro 3, 2021 Alunos Compartilhar Postado Novembro 3, 2021 Olá @Paulo Cesar! Com essas duas colunas abaixo você consegue isso de forma dinâmica: DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) AS UltimoDiaMesFechado, DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AS PrimeiroDia3MesesAnteriores Desta forma basta você fazer assim para ter dados entre este intervalo: SELECT ListadeCampos... WHERE CampoData BETWEEN DATEADD(MONTH,-3, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)) AND DATEADD(m, DATEDIFF(m, 0, GETDATE()), -1) Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Paulo Cesar
Bom dia a todos!
Preciso de uma ajuda referente a uma Query que traga os últimos 3 meses referente ao mês atual, ou seja, (Agosto, Setembro e Outubro) porque eu preciso disso, porque eu preciso fazer a médias desses ultimos 3 meses.
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora