Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcoscgr

Consulta SQL 12 últimos meses

Recommended Posts

E ai moçada, eu tenho uma tabela X, eu não estou conseguindo montar uma consulta que pegue pelo menos os 12 ultimos meses.

 

Por exemplo, eu tenho lançado do dia 01/01/2010 até o dia 01/08/2012.

 

Digamos que eu queira consultar os 12 ultimos meses a partir do dia 01/01/2011, beleza, eu consigo fazer um select que me traga sempre os ultimos 12 meses a partir de uma data, é só usar

WHERE igpm_data < '2011-01-01' ORDER BY igpm_data ASC LIMIT 12

Ele irá me trazer os ultimos 12 meses a partir do mes solicitado.

 

 

Mas o problema é, como eu só tenho cadastrado na tabela um período até 01/01/2010 entao se eu fizer a seguinte consulta

WHERE igpm_data < '2010-05-07' ORDER BY igpm_data ASC LIMIT 12

Ele irá me retornar 5 meses, óbvio.

 

 

O que eu quero é criar uma consulta que sempre retorne os 12 últimos valores da tabela, entao se eu consultar qualquer valor que fique abaixo dos 12 meses, eu gostaria que ele me trouxesse ainda assim sempre os últimos 12 meses.

Então se eu consultasse a data usada no sql acima (07/05/2010) eu gostaria que ele me retornasse os 12 últimos valores, ou seja, de mês 01/01/2010 até 01/12/2010

 

Não sei se consegui ser claro quanto à minha dúvida....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu mano, eu dei uma olhada por cima, mas eu já havia resolvido, não sei se é gambiarra o que eu fiz, mas eu fiz um select para pegar o valor minimo e o máximo, trato isso no php e depois jogo em outro select que irá me retonar o resultado que eu quero.

 

SELECT 
   igpm_data AS minData,
   (SELECT 
       MAX(igpm_data)
   FROM
       igpm
   WHERE
       1
   LIMIT 1) AS maxData
FROM igpm
WHERE igpm_id >= 1
ORDER BY igpm_data ASC
LIMIT 11 , 1

 

O limit 11,1 é para pegar justamente o décimo segundo elemento.

 

Então se os valores forem maiores ou menores que o mínimo ou o máximo, eu substituo e insiro isso na outra consulta q me traz o resultado que eu desejo.

 

Mas valeu a ajuda....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.