База MySQL. Таблица выглядит вот так: https://drive.google.com/file/d/0Byy2RDccuWnTdmQ5TXlSVm1iNkV...
сделать нужно что-то типа этого: https://docs.google.com/spreadsheets/d/1Dtby-VeUnt8Wg_WEYqeD...
на данный момент есть вот что:
#!/usr/bin/perl
use Date::Calc;
use CGI::Carp qw(fatalsToBrowser);
($mday,$mon,$year,) = localtime(time);
$year=$year+1900;
$mon=$mon+1;
if ($mon<10) { $mon="0".$mon; }
if ($mday<10) { $mday="0".$mday; }
$hour=$hour-1;
if ($hour<10) { $hour="0".$hour; }
print "Content-type: text/html; charset=utf-8\n\n";
print "
<html>
<head>
<title>Отчет Call-Centr</title>
<style>
label {
display:block;
}
</style>
</head>
<body>";
print "$mday.$mon.$year
";
print scalar localtime();
# Соединяемся с базой.
use DBI;
my $dsn='DBI:mysql:testasterisk:localhost';
my $db_user_name='testasterisk';
my $db_password='testpass';
my $dbh=DBI->connect($dsn,$db_user_name,$db_password) || die ("Ошибка: $DBI::errstr");
$dbh->do("SET NAMES utf8");
#делаем выборку по обработанным звонкам дня 1
my $day1 = $mday-30; #пытался сделать по дням
print $day5;
my $sth = $dbh->prepare("
SELECT wait_time FROM stat WHERE Status='ANSWERED'");
$sth->execute();
$sth->finish();
#делаем выборку по пропущенным звонкам
my $swt = $dbh->prepare("
SELECT AVG(wait_time) FROM stat WHERE Status='NO ANSWER'");
$swt->execute();
#находим общее количество не отвеченных звонков
my $swtrows = $dbh->prepare("
SELECT wait_time FROM stat WHERE Status='NO ANSWER'");
$swtrows->execute();
#находим максимальное время ожидания при не отвеченном звонке
my $swtm = $dbh->prepare("
SELECT MAX(wait_time) FROM stat WHERE Status='NO ANSWER'");
$swtm->execute();
my $sup = $swtrows->rows; my $sup1 = $sth->rows; #сервисные переменные для подсчета звонков
my $row = $swt->fetchrow_array();
$sth->finish();
my $row1 = $swtm->fetchrow_array();
$swtm->finish();
$swt->finish();
$swtrows->finish();
$row = sprintf("%.0f",$row); #округляем
my $sup2=$sup+$sup1; #общее кол-во звонков
print "<table border=1 align=center>";
print "<tr><td>Число</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td>
<td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td>
<td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr>"; #возможно не правильно в дальнейшем можно поменять
print "<tr><td>Общее количество обработанных звонков:</td><td>$sup2</td></tr>";
print "<tr><td>Среднее время ожидания ответа:</td><td>$row</td></tr>";
print "<tr><td>Максимальное время ожидания ответа:</td><td>$row1</td></tr>";
print "<tr><td>Общее количество не отвеченных звонков:</td><td>$sup</td></tr>";
print "<tr><td>Общее количество обработанных звонков:</td><td>$sup1</td></tr>";
print "</table>";
print "
</body>
</html>";
$dbh->disconnect();