Ir para conteúdo

POWERED BY:

Arquivado

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

guicampos1

Consultar por mês/ano somando os valores

Recommended Posts

Simplismente não retorna nada!

<?php


$where = "WHERE (order_status_id = 10208) AND (order_status_id = 10207) AND (order_status_id = 10202) AND (order_status_id = 10204)";
$group = "GROUP BY MONTH(date_added), YEAR(date_added)";


$query = mysql_query("SELECT MONTH(date_added) + '.' + YEAR(date_added) AS periodo, SUM(total) AS valor FROM opencart_order $where $group");
while($ln=mysql_fetch_assoc($query)){
$periodo = $ln['periodo'];
$valor = $ln['valor'];


echo "$periodo - $valor";
}
 ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

$query = mysql_query("SELECT CONCAT(MONTH(date_added), YEAR(date_added)) AS periodo, SUM(total) AS valor FROM opencart_order $where $group");

 

 

$where = "WHERE (order_status_id = 10208) AND (order_status_id = 10207) AND (order_status_id = 10202) AND (order_status_id = 10204)";
$group = "GROUP BY CONCAT(MONTH(date_added), YEAR(date_added))";

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema está no WHERE:

WHERE (order_status_id = 10208)
  AND (order_status_id = 10207)
  AND (order_status_id = 10202)
  AND (order_status_id = 10204)

O motivo é que você está filtrando todos esses valores no mesmo campo, um anula o outro, afinal, ou é um valor, ou outro. A solução é alterar todos estes AND por OR.

WHERE (
       order_status_id = 10208
    OR order_status_id = 10207
    OR order_status_id = 10202
    OR order_status_id = 10204
  )

Aqui está um ótimo artigo sobre quando utilizar IN, OR e AND (https://pt.blog.marceloaltmann.com/mysql-in-and-or/ - não consegui colocar como link, está quebrando a página)

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.