0
我有一個審計表,它存儲SQL Server中單個任務級別的長期運行進程的審計行。LINQ按日期查找不重疊的審計記錄
- auditId INT,
- TASKNAME爲nvarchar(255),
- 開始時間的日期時間,
- 結束時間(日期時間,空),
- 狀態(爲nvarchar(255),NULL)
該進程包含父級和子級步驟,每個步驟都記錄到審計表。任務可能會或可能不會有父母。
例如
auditId,TASKNAME,開始時間,結束時間,狀態
- Parent1,九時30分00秒,9時40分○○秒,有效
- Child1,9時30分01秒,九點35分00秒,有效
- CHILD2,9時35分01秒,九時40分00秒,有效
- Parent2,9時40分01秒,NULL,NULL
- Child3,九點40分02秒,NULL,NULL
通過ObservableCollection使用C#4.0/LINQ to Entities/LINQ我希望從過去X天獲得該表的審計摘要,其中包含按狀態顯示的每一天的總持續時間。如果我能弄清楚如何獲取摘要審計記錄,那麼我可以透視個別記錄以生成摘要。
在審計工作的總結,應該:
- 沒有任何重疊的審計記錄,否則會重複計算時間。
- 需要處理的事實是,可能存在仍在當前日期運行的任務並返回空值
- 需要處理上一個任務結束與下一個任務開始之間的延遲。可能是通過獲取當前任務的開始和下一個任務的開始之間的持續時間而不是當前任務的結束。
- 處理空值的一天的最後一個任務,不會有下列開始時間,如果我用在點描述的下一個記錄的開始時間3
因此,使用總結上面的例子記錄是:
auditId,TASKNAME,開始時間,結束時間,狀態
- Parent1,09:30:00,9時40分01秒,有效
- Parent2,09:40:01,null,null
任何想法?
感謝