[英]How to sum total row each month group by month and user name
我每個月都有一張銷售記錄表。 在這種情況下,每個推銷員都有自己的代碼bd
和nk
。
MySQL的
select sale_plc
, month(sale_date) as mon
, sum(sale_cost) as cost
from daily_sales
where year(sale_date)='2016'
group
by year(sale_date)
, month(sale_date)
, sale_plc
order
by month(sale_date)
, sale_plc asc
LIMIT 0, 30
查詢后我得到了這個結果:
id mon cost
bd 1 224787
nk 1 721102
bd 2 440399
nk 2 898020
bd 3 363543
nk 3 878250
而
根據結果。 我希望結果像這樣的數組。 排列
(
[1] => Array
(
[mon] => 1
[bd] => 224787
[nk] => 721102
)
[2] => Array
(
[mon] => 2
[bd] => 440399
[nk] => 898020
)
[3] => Array
(
[mon] => 3
[bd] => 363543
[nk] => 878250
)
)
我知道這與sale_plc
。 我需要制作數組,但我不知道這樣做。
我沒有SQL輸出,所以我創建一個數組並使用與我為您的數組相同的功能創建自己的代碼。
PHP
$arr = array(array("id" => "bd", "mon" => "1", "cost" => "224787"),
array("id" => "nk", "mon" => "1", "cost" => "721102"),
array("id" => "bd", "mon" => "2", "cost" => "440399"),
array("id" => "nk", "mon" => "2", "cost" => "898020"),
array("id" => "bd", "mon" => "3", "cost" => "363543"),
array("id" => "nk", "mon" => "3", "cost" => "878250"),
);
$output_arr = array();
$tmp = 0;
foreach($arr as $key => $value){
if($tmp == 0 || $tmp != $value['mon'])
$output_arr[$value['mon']][mon] = $value['mon'];
if($value['id'] == 'bd')
$output_arr[$value['mon']][$value['id']] = $value['cost'];
if($value['id'] == 'nk')
$output_arr[$value['mon']][$value['id']] = $value['cost'];
$tmp = $value['mon'];
}
echo "<pre>";
print_r($output_arr);
echo "</pre>";
產量
Array
(
[1] => Array
(
[mon] => 1
[bd] => 224787
[nk] => 721102
)
[2] => Array
(
[mon] => 2
[bd] => 440399
[nk] => 898020
)
[3] => Array
(
[mon] => 3
[bd] => 363543
[nk] => 878250
)
)
我已經回答了你的SQL輸出。 給出SQL的示例。
PHP
$output_arr = array();
//Your sql
$sql = "select sale_plc
, month(sale_date) as mon
, sum(sale_cost) as cost
from daily_sales
where year(sale_date)='2016'
group
by year(sale_date)
, month(sale_date)
, sale_plc
order
by month(sale_date)
, sale_plc asc
LIMIT 0, 30";
$tmp = 0;
$i = 0;
$qry = mysqli_query($conn, $sql);
while ($obj = mysqli_fetch_object($qry )){
if($tmp == 0 || $tmp != $obj->mon)
$output_arr[$obj->mon][mon] = $obj->mon;
if($obj->id == 'bd')
$output_arr[$obj->mon][$obj->id] = $obj->cost;
if($obj->id == 'nk')
$output_arr[$obj->mon][$obj->id] = $obj->cost;
$tmp = $obj->mon;
}
print_r($output_arr);
輸出:
Array(
[1] => Array
(
[mon] => 1
[bd] => 224787
[nk] => 721102
)
[2] => Array
(
[mon] => 2
[bd] => 440399
[nk] => 898020
)
[3] => Array
(
[mon] => 3
[bd] => 363543
[nk] => 878250
)
)
試試這個答案,如果有任何問題,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.