(使用SQL Server 2008)按年齡計算的SQL數據壽命暴露時間
我需要一些幫助來形象化解決方案。比方說,我有以下簡單的表,退休金計劃的成員:
[Date of Birth] [Date Joined] [Date Left]
1970/06/1 2003/01/01 2007/03/01
我需要計算的生活各年齡組的人數從2000年到2009年
注:「年齡」的定義作爲1月1日這些每位年輕人的「最後一個生日的年齡」(或「ALB」)。例如如果你正好是41.35或41.77等年歲在2009年1月1日,那麼你將是ALB 41.
因此,如果上面的記錄是數據庫中的唯一條目,那麼輸出將如下所示:
[Year] [Age ] [Number of Lives]
2003 32 1
2004 33 1
2005 34 1
2006 35 1
2007 36 1
(2000年,2001年,2002年,2008年和2009年有在文件中沒有生命因爲唯一的成員才加入對2003年1月1日和留在1/3/2007)
希望我讓自己清楚。
任何人有任何建議嗎?
謝謝,卡爾
[編輯]
添加另一層問題:
,如果我有什麼:
[Date of Birth] [Date Joined] [Date Left] [Gender] [Pension Value]
1970/06/1 2003/01/01 2007/03/01 'M' 100,000
,我想輸出是:
[Year] [Age ] [Gender] sum([Pension Value]) [Number of Lives]
2003 32 M 100,000 1
2004 33 M 100,000 1
2005 34 M 100,000 1
2006 35 M 100,000 1
2007 36 M 100,000 1
有什麼想法?
偉大的答案感謝。我喜歡@StartYear,@EndYear方法 – Karl 2009-11-10 16:15:19
感謝您的答案 - 請參閱我的編輯了一個額外的複雜層,我不知道如何調整您的代碼來實現這一點。謝謝,卡爾 – Karl 2009-11-10 16:26:50
我會在早上到這個X-) – 2009-11-10 17:31:44