У меня есть очень простой скрипт, использующий базовый запрос, который возвращает строки результатов и успешно печатает их на лист 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');
Вот проблема:
В настоящее время запрос возвращает правильные строкив этом формате:
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