my( $srv_date, $srv_time ) = @$row;
my $cur = str2time( "$srv_date $srv_time" );
next if $cur-$prev <= 60;
+ last if time - $cur <= 300;
warn "no $serviceid for $srv_date $srv_time; adding\n"
if $DEBUG;
my $sin = join(',', map dbh->quote("$_$dir"), @serviceids);
my $sum = "
- SELECT SUM(value) FROM srvexport AS other
+ SELECT COALESCE(SUM(value),0) FROM srvexport AS other
WHERE other.serviceid IN ($sin)
AND ABS( $cur - $other_date ) <= 60
";
";
my @param = ( time2str('%Y-%m-%d', $cur), #srv_date
time2str('%X', $cur), #srv_time
- $serviceid,
+ "$serviceid$dir",
300, #intvl ...
);
- warn $isql. ' with param '. @param. "\n"
+ warn $isql. ' with param '. join(',',@param). "\n"
if $DEBUG > 1;
my $isth = dbh->prepare($isql) or die $DBI::errstr; #better recovery?
$isth->execute( @param ) or die $isth->errstr;
+ dbh->commit or die dbh->errstr;
}