我想寫一個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