Placer la sous-requête dans la clause WHERE et la restreindre à n.control_number signifie qu'elle exécute la sous-requête plusieurs fois. C'est ce qu'on appelle une sous-requête corrélée , et c'est souvent un tueur de performances.
Il est préférable d'exécuter la sous-requête une fois, dans la clause FROM, pour obtenir la date maximale par numéro de contrôle.
SELECT n.*
FROM tblpm n
INNER JOIN (
SELECT control_number, MAX(date_updated) AS date_updated
FROM tblpm GROUP BY control_number
) AS max USING (control_number, date_updated);