获取总销售数据。
我有一个关于在godaddy上托管的mysql的数据库,包含以下表格。
我需要在一个月内获得所有客户的总销售数据。 (理想情况下,用户输入的不同月份范围可用于分析趋势)。
+---------------+--------+--------+--------+--------+--------+--------+
| Customer Name | Jan-18 | Feb-18 | Mar-18 | Apr-18 | May-18 | Jun-18 |
+---------------+--------+--------+--------+--------+--------+--------+
| ABC | 30 | 50 | 30 | 80 | 70 | 140 |
+---------------+--------+--------+--------+--------+--------+--------+
| DEF | 40 | 50 | 130 | 180 | 70 | 140 |
+---------------+--------+--------+--------+--------+--------+--------+
.....
我试过这样做 -
什么是以更有效的方式获取此数据的最佳方式?
编辑1 -
SQL QUERY
while ($year<2017){
$months=0;
while ($months<12){
$cust_code=mysql_result($result2,$no,"code");
$sqlquery3="select ifnull(sum(a.quantity),0) as total_quantity
from delivery_line a, delivery_main b
where
a.item REGEXP 'INDOX|MEDOX|INDNIT|INDCO2|ARGON'
and a.del_no=b.no
and a.series=b.series
and b.cust_code='$cust_code'
and month(b.date_added)=($months+1)
and year(b.date_added) = ($year)";
$result3=mysql_query($sqlquery3);
$count3=mysql_num_rows($result3);
$quantity=mysql_result($result3,0,"total_quantity");
echo "<td>".$quantity."</td>";
$months++;
}
$year++;
}
答案 0 :(得分:0)
表delivery_data
需要有一个引用customer_data
的外键,然后你只需
SELECT * from delivery_data a INNER JOIN customer_data b WHERE
a.custcode = b.custcode AND MONTH(b.date) = 5;
5号是5月份。
确保在要加入的列或作为条件使用的列上设置正确的索引。即a.del,b.no,a.series,b.series,b.cust_code,b.date_added。
a.item上的正则表达式可能是杀手,但除非你可以利用该字段的开头作为锚点,否则索引不会对你有任何好处,即
"LIKE 'NEEDLE%'"
或
"REGEXP '^(NEEDLE)|...'"