use strict;
use warnings;
use DBI;
my $dbh = DBI->connect('DBI:Oracle:SID', 'username', 'password') or die "Couldn't connect to database: " . DBI->errstr;
#
# this date format is just for demo.
# the actual variable will have date passed like this:
# my $date = "$month/%/$year";
# where $month & $year will be calculated using DateTime
#
my $date = '08/%/2015';
# I've also tried other date formats like '"08/%/2015"' but nothing seems to work! :(
my $sth = $dbh->prepare('SELECT sum(v1),sum(v2),sum(v3),sum(v4),sum(v5) FROM some_table WHERE DATE LIKE ?');
$sth->execute($date) or die "Couldn't get values from table: " . DBI->errstr;
my ($v1,$v2,$v3,$v4,$v5);
if ($sth->rows == 0) {
print "0 results\n";
exit;
}else{
while (my @data = $sth_1->fetchrow_array()) {
$v1 = $data[0];
$v2 = $data[1];
$v3 = $data[2];
$v4 = $data[3];
$v5 = $data[4];
}
print "$v1,$v2,$v3,$v4,$v5\n";
}
####
SELECT sum(EMAIL_IRT),sum(DROP_CALL_COUNT),sum(ANS_CALL_COUNT),sum(EMAILS_IN),sum(EMAILS_OUT) FROM CS_STATS WHERE DATE_ADDED >= TO_DATE(?,\'yyyy-mm-dd\') AND DATE_ADDED <= TO_DATE(?,\'yyyy-mm-dd\')
####
my $yesterday = DateTime-> now(time_zone=>'Asia/Calcutta')->subtract( days => 1 );
my $y_month = $yesterday->month;
my $y_year = $yesterday->year;
if ($y_month < 10){
$y_month = "0".$y_month;
}
my $finaldt1 = $y_year."-".$y_month."-01";
my $finaldt2 = $yesterday->ymd;