在我的程序中,我审核传入的数据,可以是 4 种类型。如果数据满足所有要求的条件,它将成功存储在表列中,以及该行输入表时的消息类型和时间戳。
由于审计出现连接问题等问题,数据也可能被错误地写入表中。程序将重试审核此数据,如果成功将写入新行,成功。所以你看我现在有两行数据的特定消息,一个成功,一个有错误,两者都有不同的时间戳。(成功的时间戳比错误记录的最新。)
如果传入的数据不符合要求的标准,则会出现第三条被拒绝的消息,并写入一条记录,再次带有创建时间戳。
我想做的是编写一个 Sybase SQL 查询,以仅拉回每条接收到的消息的记录,时间戳最高。
因此,对于上面的错误示例,我不想返回错误记录,只返回进程重试并成功时的相应成功记录。
我想到了类似以下的东西..
SELECT distinct(*)
FROM auditingTable
WHERE timestamp = (SELECT MAX(timestamp) from auditingTable)
虽然我知道这只会带回 1 条记录,在整个表中具有最高的时间戳。
无论其状态如何,我如何才能取回收到的每条消息的最新记录?
欢迎任何想法!