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; }