Olá,
Tenho uma tabela "pedidos", entre os atributos dela, tem um do tipo "date"..
Os pedidos são registrados a qualquer dia, mas o setor de compras fecha eles no dia 05 de cada mês.
Até aih tudo bem. Agora preciso fazer uma espécie de histórico, e mostrar os pedidos separados por mês, porém, o mês começa no dia 05 e termina no dia 04 do mês seguinte..
Na verdade, quero mostrar quais as datas que tiveram pedidos.. os pedidos mesmo é outra coisa..
Ex.:
id -- data - ...
1 -- 2008-02-03
2 -- 2008-02-07
3 -- 2008-02-25
4 -- 2008-03-02
5 -- 2008-04-08
deve retornar:
01/2008 (o primeiro registro faz parte do mês 1)
02/2008 (os registros 2,3 e 4 fazem parte do mês 2)
04/2008 (o ultimo registro faz parte do mês 4)
vlw

Select Com Datas
Started By Falci, 29/04/2008, 08:56
5 replies to this topic
#2
Posted 29/04/2008, 10:21
cara tenta adaptar no seu código
SELECT GROUP_CONCAT(ID SEPARATOR ' '), MONTH(DATE) AS MONTH FROM pedidos GROUP BY MONTH(DATE)
qualquer coisa posta o codigo aí
flw
SELECT GROUP_CONCAT(ID SEPARATOR ' '), MONTH(DATE) AS MONTH FROM pedidos GROUP BY MONTH(DATE)
qualquer coisa posta o codigo aí
flw
DBPlex dbplex.com.br
#3
Posted 30/04/2008, 09:28
Tohma, obrigado pela ajuda, mas não intendi bem.
O código que vc podtou retornou isso:
GROUP_CONCAT( ID SEPARATOR ' ' ) MONTH
[BLOB - 56 Bytes] 4
deixa eu tentar explicar melhor...
é quase isso:
só que se o dia for <=4 ele deve fazer parte do mês anterior...
como no exmplo lah em cima:
2008-02-03 <--- faz parte do mês 1;
O código que vc podtou retornou isso:
GROUP_CONCAT( ID SEPARATOR ' ' ) MONTH
[BLOB - 56 Bytes] 4
deixa eu tentar explicar melhor...
é quase isso:
select distinct concat(month(data),'-',year(data)) from pedidos
só que se o dia for <=4 ele deve fazer parte do mês anterior...
como no exmplo lah em cima:
2008-02-03 <--- faz parte do mês 1;
#4
Posted 30/04/2008, 10:22
Ao invés de usar o month() poelo campo data, use data-5.
#5
Posted 30/04/2008, 16:24
Olha parece que voce está complicando o meio de campo. Faz o seguinte
Select id, data from tabela where data beween '01-05-2008 00:00:00' and '02-04-2008 23:59:59'
Isso vai lhe retornar todos resultados entre 5 de janeiro de 2008 até 4 de fevereiro de 2008.
Par aquery funcionar perfeitamente passe as datas como parametros via script (PHP por exemplo)
Select id, data from tabela where data beween '01-05-2008 00:00:00' and '02-04-2008 23:59:59'
Isso vai lhe retornar todos resultados entre 5 de janeiro de 2008 até 4 de fevereiro de 2008.
Par aquery funcionar perfeitamente passe as datas como parametros via script (PHP por exemplo)
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)