SQL - Retour à la ligne distinct pour les données avec Max créé valeur d'horodatage

Dans mon programme, j'ai de la vérification des données entrantes, qui peuvent être de 4 types. Si les données répond à tous les critères requis, il est stocké avec succès dans une colonne de table, ainsi que le type de message et l'horodatage de quand la ligne a été entré dans la table.

De données peut également être écrit à la table avec l'erreur, en raison de quelque chose comme un problème de connexion occurrring etc avec l'audit. Le programme tentera de vérification de ces données, et en cas de succès va écrire une nouvelle ligne, avec succès. Donc, vous voyez, j'ai maintenant 2 lignes pour que le message de données, un succès, un avoir d'erreur, à la fois avec des temps différents timbres. (Le succès est d'avoir la plus récente d'horodatage de l'enregistrement d'erreur.)

Un troisième message, rejeté se produit et a un dossier écrit si les données entrantes ne pas répondre à la norme requise, à nouveau avec la création d'horodatage.

Ce que j'aimerais faire, c'est écrire une Sybase SQL de la requête pour remonter seulement l'enregistrement pour chaque message reçu, avec le plus d'horodatage.

Donc, avec l'erreur ci-dessus exemple, je ne veux pas retourner à l'enregistrement d'erreur, seul le succès correspondant enregistrement à partir de quand le processus de tentative d'appel et a été un succès.

J'avais pensé à quelque chose comme ce qui suit..

SELECT distinct(*) 
    FROM auditingTable
        WHERE timestamp = (SELECT MAX(timestamp) from auditingTable)

si Im courant cela ne fera que ramener 1 record de la plus haute timestamp dans l'ensemble de la table.

Comment pourrais-je récupérer l'enregistrement le plus récent pour chaque message reçu, indépendamment de son statut??

Toutes les idées sont les bienvenues!

OriginalL'auteur deanmau5 | 2013-08-09