我想写一个SQL Server查询,但没有运气,并想知道如果任何人可能有任何想法如何实现我的查询。SQL Server比较后续行重复
我想要做的事:
我有几列命名是我处理的TaskID,的StatusCode,时间戳的那些表。现在这张表只保存了一天中运行的一个系统的任务,当它运行时它会得到一个时间戳和状态码,具体取决于该任务的状态。
有时会发生什么情况是任务表将被更新为新的时间戳,但是自上次更新任务以来statusCode不会发生任何更改,因此对于给定任务的两个或更多连续行,statusCode可以是相同的。当我说连续的行时,我的意思是时间戳。
因此,示例任务88可能在状态码2处具有20行,之后状态码更改为其他内容。
现在我正试图做的事情没有运气,现在是从这张表中检索所有任务和状态码和时间戳列表,但在我有一个以上任务的连续行使用相同的状态码,我只想用最低的时间戳记取第一行,并忽略该行的其余部分,直到该任务的状态码更改。
为了简化在这种情况下,你可以假设我有一个taskid,我正在过滤,所以我只是看着一个单一的任务。
有没有人有任何想法,我怎么能做到这一点,或者可能是我coudl可能读了帮助我的东西?
谢谢 Irfan。
我忘了提我正在使用SQL SERVER 2005 – Iffy 2009-12-07 17:42:15
你试图做的事听起来对我来说非常程序化 - 所以也许你最好在C#这样的事情上做这件事,而不是试图弯曲T-SQL来做这件事。 – 2009-12-07 19:56:25
嘿马克,你知道我就是这么想的,但是我试图这样做的原因是为了减少来自SQL的负载。如果没有这个逻辑来完成某些任务,由于重复的状态码行数量很大,我可以得到几千行。如果我可以减少结果集根据状态码只包含不同的行,这将大大加快速度。 – Iffy 2009-12-07 22:27:41