我有一個SQL表,我需要使用日期獲取最後一行的編號,並計算以前行的數量,即使它們中沒有日期也是如此。使用T-SQL計算以前記錄的數量
如
02/01/2011
03/01/2011
09/01/2011
NULL
10/10/2011
NULL
此表應歸還號碼5的第5記錄
NULL
NULL
NULL
09/01/2011
NULL
10/10/2011
NULL
此表應返回6
預先感謝您
Ĵ
-----更新------- 只需要更多信息
該表其自身代表工作單元完成(里程碑)和指向表示工作單元的父表的鏈接。在里程碑表中,它包含日期,父工作ID和一個milsestone ID。
從第一個例子
ParentID MilestoneID Date
1234 123 02/01/2011
1234 124 03/01/2011
1234 125 09/01/2011
1234 126 NULL
1234 127 10/10/2011
1234 128 NULL
希望這有助於
-----更新2 -----
我得到的最接近是此
SELECT TOP 1
Num
FROM
(
SELECT
ROW_NUMBER()OVER(ORDER BY ParentID) AS Num,
Date
FROM
Milestone
WHERE
Milestone.ParentID = 1234
) AS MilestoneStones
WHERE 日期不爲空 ORDER BY 民DESC
但隨着大型數據集和其他的東西附加到它,它變得非常慢 希望我能得到更好的東西
謝謝
Ĵ
是否最終行真的需要在此查詢?你是否能夠在處理查詢結果的代碼中獲得計數,無論這可能是什麼。 – DoctorMick
什麼決定了該字段可以爲NULL的行的順序?有沒有ID列? –
ROW_NUMBER()OVER(ORDER BY PARENTID)爲num或許應該ROW_NUMBER()OVER(ORDER BY PARENTID,MilestoneID)爲num或只是ROW_NUMBER()OVER(ORDER BY MilestoneID)爲num –