SELECT key_number, dateadded,
IF (action=@last_action AND key_number=@last_key,"ERROR","OK"),
@last_action := action, @last_key := key_number
FROM ( SELECT *
FROM keysafe
ORDER BY key_number, dateadded
) as x
####
$dbh->do('SET @last_action := "UNKNOWN",@last_key="UNKNOWN"');
####
my $sql = 'SELECT key_number,action,dateadded
FROM keysafe
ORDER BY key_number, dateadded';
my $sth = $dbh->prepare($sql);
$sth->execute();
my ($last_key,$last_action);
while (my ($key,$action,$date) = $sth->fetchrow_array){
my $status = 'OK';
if (($key eq $last_key) && ($action eq $last_action)){
$status = 'ERROR';
};
print "$key,$action,$date,$status\n";
$last_key = $key;
$last_action = $action;
}