Ir para conteúdo
Fórum Script Brasil
  • 0

AJUDA COM SELECT


Julim

Pergunta

Bom pessoal, estou com uma coisa me atrapalhando a um dia inteiro. Preciso fazer um SELECT que agrupe as datas por mes, e depois por ano. Tentei com um SELECT dentro de OUTRO. Agrupa os meses certinho, mas o ano não. Alguém pode me ajudar?

Segue o código

for($i=0;$i<count($meses);$i++){
    $sql = mysql_query("
    SELECT * FROM (
        SELECT SUM(valor_estimado), data_cad
        FROM tb_projeto 
        WHERE MONTH(data_cad)='".$meses[$i][0]."'
        GROUP BY MONTH(data_cad) // agrupando os meses
        ) AS tabela
    WHERE DATE(data_cad)>'".date('Y-m-d', strtotime('-365 day'))."' //pegando os resultados dos últimos 12 meses (24/08/2011 a 23/08/2012)
    GROUP BY YEAR(data_cad) // aqui tentei agrupar pelo ano
    ORDER BY YEAR(data_cad) ASC // e aqui ordenar pelo ano, do menor para o maior
    ") or die ("Erro nessa bagunça >> ".mysql_error());
    $row = mysql_fetch_array($sql);

    if($row[0]){
        echo "['".$meses[$i][1]."', ".$row[0]."], ";
    }
}

O resultado dessa query é o seguinte:

['Jun', 42750.5], ['Ago', 60425], ['Nov', 3200],

Sendo os os meses de Jun e Ago são de 2012 e o mês de Nov é referente a 2011. O que eu preciso é mostrar esse resultado acima, da seguinte forma:

['Nov', 3200], ['Jun', 42750.5], ['Ago', 60425],

Porque o mês de Nov é de 2011 e Jun e Ago de 2012.

Please, help me!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Caro usuário, este é o seu TERCEIRO tópico sobre o mesmo assunto, não seria mais prudente centralizar tudo em apenas um? Pois bem, visando uma melhor organização você fica avisado que a partir de agora QUALQUER tópico seu sobre o assunto será apagado sem aviso prévio, já que todos eles tratam do uso do SUM com GROUP BY no MySQL.

Link para o comentário
Compartilhar em outros sites

  • 0
Caro usuário, este é o seu TERCEIRO tópico sobre o mesmo assunto, não seria mais prudente centralizar tudo em apenas um? Pois bem, visando uma melhor organização você fica avisado que a partir de agora QUALQUER tópico seu sobre o assunto será apagado sem aviso prévio, já que todos eles tratam do uso do SUM com GROUP BY no MySQL.

Por favor, me desculpe. Foi um descuido e não voltará a se repetir.

A propósito, esse é o SEGUNDO tópico que posto, e não o terceiro.

Pode, por gentileza, apagar esse tópico.

Att.

Júlio

Como já resolvi sozinho, quero deixar a resposta para os usuários que fórum tirarem proveito quando for necessário.

$sql = mysql_query("
        SELECT SUM(valor_estimado), MONTH(data_cad) AS mes, YEAR(data_cad) AS ano
        FROM tb_projeto
        WHERE DATE(data_cad)>'".date('Y-m-d', strtotime('-365 day'))."'
        GROUP BY mes
        ORDER BY ano ASC
    ") or die (mysql_error());
    
    while($row = mysql_fetch_array($sql)){

        echo "['".$row[mes]."', ".$row[0]."], ";
    }

Link para o comentário
Compartilhar em outros sites

  • 0
A propósito, esse é o SEGUNDO tópico que posto, e não o terceiro.

Errado é o TERCEIRO mesmo, um deles foi flood (postou duas vezes o mesmo tópico com diferença de pouco mais de 1 hora) e está na lixeira do fórum.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...