我几乎完成了我的查询,但仍然有最后一个问题需要解决。我的查询如下所示:
//execute the SQL query and return records
$result = mysql_query("SELECT SUM(ps_order_detail.product_weight) * IF( COUNT(ps_order_detail.id_order_detail) > 50, 1.2, 1 )
as total_provision, COUNT(ps_order_detail.id_order_detail) as antal_ordrar, ps_customer.firstname
FROM ps_order_detail
JOIN ps_orders ON ps_order_detail.id_order = ps_orders.id_order
JOIN ps_order_history ON ps_orders.id_order = ps_order_history.id_order
JOIN ps_customer ON ps_orders.id_customer = ps_customer.id_customer
WHERE MONTH(ps_order_history.date_add) = MONTH(CURDATE()) AND (ps_order_history.id_order_state) = '4' OR (ps_order_history.id_order_state) = '13'
GROUP BY ps_orders.id_customer
ORDER BY SUM(ps_order_detail.product_weight) DESC
");
echo "
";
echo ("");
echo "
";
echo ("");
//fetch tha data from the database
while ($row = mysql_fetch_array($result))
{
echo '';
echo " Namn: ".$row{'firstname'}. "";
echo " Provision: ".$row{'total_provision'}. "";
echo " Abonnemang: ".$row{'antal_ordrar'}. "";
echo '
';
echo '';
}这部分:
AND (ps_order_history.id_order_state) = '4' OR (ps_order_history.id_order_state) = '13'如果订单状态为4或13,则会显示结果。问题是,在后端我可以多次将它置于这些状态,所以如果我在更新订单时不小心,它会将结果添加到结果中不止一次。
这是一种限制该函数只处理最新更新(在同一个表中具有date_add)或限制为1的方法吗?