Jump to content


Saty Matos

Member Since 15/09/2010
Offline Last Active 29/03/2011, 22:33
-----

Posts I've Made

In Topic: Somar Valores

29/03/2011, 22:35

Olá, eu precisava de algo parecido, mas que contasse o numero de vendas por dia dos últimos 3 meses (não precisa ser 90 dias certinhos) se por acaso o mês começou hoje contaria os 2 meses passados + o dia de hoje.
Exemplo da tabela
Id_venda Data(date) produto
1 2011-02-05 Produto A
2 2011-02-20 Produto A
3 2011-03-02 Produto A
4 2011-03-10 Produto A
5 2011-03-10 Produto A

6 2011-03-25 Produto A
7 2011-04-01 Produto A

Exemplo da tabela que deveria ser gerada por php:
dias(últimos 3 meses) Numero de vendas por dia
2011-02-05 1
2011-02-20 1
2011-03-02 1
2011-03-10 2
2011-03-25 1
2011-04-01 1

alguem pode me ajudar? agradeço muito

ja consegui fazer a seguinte funçao para determinar os 3 meses anteriores, o SQL é facil, e somar as linhas com data igual tbem. de qualquer forma obrigado

$voltaAno = 0;

/* o primeiro numero informa em ordem descrecente de qual mes inicia a contagem (o = mes atual / 1 = mes anterior) o segundo diz o numero de meses */
for($m=0;$m<=3;$m++){
	$numMes = date('n')-$m;
    $ano = date('Y');
            
    if(!empty($voltaAno)) $numMes = $numMes+($voltaAno*12);     
    if($numMes==0){ $numMes = 12; $voltaAno++;  }  
    if(!empty($voltaAno)) $ano = date('Y')-$voltaAno;  

    $objMeses[] = array('mes' => $numMes, 'ano' => $ano);
}

# se adicionar mais meses, adicionar tbem mais linhas ao codigo abaixo (exibindo atualmente 3 meses)
$mes1 = $objMeses[0];
$mes2 = $objMeses[1];
$mes3 = $objMeses[2];

extract($mes1); if ($mes <=9){$mes = '0'.$mes;} $mes1 = $ano.'-'.$mes.'-';
extract($mes2); if ($mes <=9){$mes = '0'.$mes;} $mes2 = $ano.'-'.$mes.'-';
extract($mes3); if ($mes <=9){$mes = '0'.$mes;} $mes3 = $ano.'-'.$mes.'-';


#exibindo dados	
echo $mes1.', '.$mes2.', '.$mes3;

IPB Skin By Virteq