Jump to content


Photo

Select Com Datas


  • Faça o login para participar
5 replies to this topic

#1 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 29/04/2008, 08:56

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
<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>

#2 Tohma

Tohma

    12 Horas

  • Usuários
  • 202 posts
  • Sexo:Masculino
  • Localidade:Curitiba

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
DBPlex dbplex.com.br

#3 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

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:

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;
<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>

#4 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 30/04/2008, 10:22

Ao invés de usar o month() poelo campo data, use data-5.

#5 McLoide

McLoide

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

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)

#6 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 15/05/2008, 08:34

Ao invés de usar o month() poelo campo data, use data-5.


Cara, mais uma vez, muito obrigado...
<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq