映射查询结果仅聚合在一个数字下
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。
我有一个使用基本查询的非常基本的脚本,它 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。