映射查询结果仅聚合在一个数字下

mapping query results to be aggregated under only one number

我有一个使用基本查询的非常基本的脚本,它 returns 结果行并将它们成功打印到 excel 工作表

    //Create and run query
    $sql = "
    SELECT Manager, count(*) as Items
      from itemCount
    where start_date >= '2019-01-01'
    group by Manager
    order by Manager";

    $result = odbc_exec($DB2Conn, $sql);

    $phpExcel = new PHPExcel;
    $sheet = $phpExcel->getActiveSheet();
    $sheet ->setTitle("Management Numbers");
    $sheet ->getColumnDimension('A') -> setAutoSize(true);
    $sheet ->getColumnDimension('B') -> setAutoSize(true);



    //Create header row
    $sheet->setCellValue('A1', 'Manager');
    $sheet->setCellValue('B1', 'Items');

    $rowCount = 2;

    while($row = odbc_fetch_array($result)){
        var_dump($row);
        $sheet->setCellValue('A'.$rowCount, $row['Manager']);
        $sheet->setCellValue('B'.$rowCount, $row['Items']);

        $rowCount++;
    }

    $writer = PHPExcel_IOFactory::createWriter($phpExcel, "Excel2007");
    $writer->save('Management Numbers.xlsx');

这是问题所在:

查询目前 returns 更正了这种格式的行:

Manager  |  Items
-----------------
12           5
13           2
16           3
11           7
18           4
19           8
22           1
21           7
32           4
53           3
25           5
75           2

但是每个经理都向某个部门报告,我想映射这个,以便我可以硬编码并将经理分配给部门。

如何使用数组将经理分配给

这样的部门
 1=>12,13,16 
 2=>11,18,19,22,21
 3=>32,53,25,75

这样我就得到了一个电子表格,其中仅包含部门编号和为其分配的经理的汇总编号,如下所示:

Manager  |  Items
------------------
1           41
2           91
3           185

对于分配了部门的经理,您可以创建一个数组,例如

$manager_array['manager_id'][]='department_id';

$manager_array['1'][]=12;
$manager_array['1'][]=13;
$manager_array['1'][]=16;

$manager_array['1']=array(12,13,16);

要获取每个部门的经理人数,请统计 $manager_array['manager_id'] 喜欢

count($manager_array[1]);

您还可以使用 department_id 列(如果可能)扩展您的 itemCount table。