Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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";
}
?>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)