my $sql = "select sum(Total_MO),sum(Total_MO_sucess),sum(MO_userdep_error),sum(MO_subcrib_error),sum(MO_system_error),sum(Total_MO_success_rate)/(select count(Total_MO_success_rate) from CDR where Date = '13-10-2015' and Hour like '00:%'),sum(Total_AO),sum(Total_AO_sucess),sum(AO_userdep_error),sum(AO_subcrib_error),sum(AO_system_error),sum(Total_AO_success_rate)/(select count(Total_AO_success_rate) from CDR where Date = '13-10-2015' and Hour like '00:%'),sum(Total_MT_P2P),sum(Total_MT_sucess_P2P),sum(MT_P2P_userdep_error),sum(MT_P2P_subcrib_error),sum(MT_P2P_system_error),sum(Total_MT_P2P_success_rate)/(select count(Total_AO_success_rate) from CDR where Date = '13-10-2015' and Hour like '00:%'),sum(Total_MT_A2P),sum(Total_MT_sucess_A2P),sum(MT_A2P_userdep_error),sum(MT_A2P_subcrib_error),sum(MT_A2P_system_error),sum(Total_MT_A2P_success_rate)/(select count(Total_AO_success_rate) from CDR where Date = '13-10-2015' and Hour like '00:%'),sum(Total_AT),sum(Total_AT_sucess),sum(AT_ESMEdep_error),sum(AT_network_error),sum(AT_system_error),sum(Total_AT_success_rate)/(select count(Total_AO_success_rate) from CDR where Date = '13-10-2015' and Hour like '00:%'),sum(P2P_FDA_count),sum(P2P_FDA_success_count),sum(P2P_FDA_success_rate)/(select count(Total_AO_success_rate) from CDR where Date = '13-10-2015' and Hour like '00:%'),sum(A2P_FDA_count),sum(A2P_FDA_success_count),sum(A2P_FDA_success_rate)/(select count(Total_AO_success_rate) from CDR where Date = '13-10-2015' and Hour like '00:%'),sum(Total_Count),sum(Total_TPS),max(Greatest_TPS) from CDR where Date = ? and Hour like ?"; foreach my $hour ("00","01","02","03","04","05","06","07","08","09",10..23) { $sth->execute($date, "$hour:%") or die $DBI::errstr; my @my_array = (); push(@my_array,$hour); push(@my_array,$sth->fetchrow_array()); my $col = 0; print @my_array,$/; foreach my $value (@my_array) { $sheet->AddCell( $row, $col, $value ); ++$col; } $row++; }