2014-07-16 22 views
0

想象一下,您有一個具有不同成員ID和服務日期的成員 您現在需要按升序排列服務日期並將這些日期的順序返回到另一個日期列(date_count)。最終的結果會是這樣的:如何在ASC課程中獲得日期順序日期的跑步總數

memberid name  date     date_count 
122   matt  2/8/12    1 
122   matt  3/9/13    2 
122   matt  5/2/14    3 
120   luke  11/15/11    1 
120   luke  12/28/14    2 
100   john  1/12/10    1 
100   john  3/2/12    2 
100   john  5/30/12    3 
150   ore  5/8/14    1 
150   ore  9/9/14    2 

這裏是工作,但在排名(1,2,3)爲了不返回date_count查詢。這相反返回date_count相同的數字,不知道爲什麼數字

memberid name  date_count 

122   matt  3 
122   matt  3 
122   matt  3 
120   luke  5 
120   luke  5 
120   luke  5 
100   john  6 
100   john  6 
150   ore  2 
150   ore  2 




SELECT A.MEMBERID, A.NAME,A.DATE, COUNT(B.DATE) AS DATE_COUNT FROM #WCV_COUNTS A 
      INNER JOIN #WCV_COUNTS B 
      ON A.MEMBERID <= B.MEMBERID 
      AND A.MEMBERID= B.MEMBERID 
      GROUP BY A.MEMBERID, A.NAME, A.DATE 
      ORDER BY A.MEMBERID 

感謝您的幫助提前!

回答

0

使用ROW_NUMBER()

SELECT memberid, name, date, 
     ROW_NUMBER() OVER (PARTITION BY memberid ORDER BY date) AS date_count 
FROM  #WCV_COUNTS 
ORDER BY memberid, date 
+0

嗨維沙爾,這個錯誤 'ROW_NUMBER' 不使用SQL Server 2008 ... –

+0

這是奇怪的可以識別的函數名」 ...林...返回請檢查此鏈接:http://msdn.microsoft.com/en-us/library/ms186734(v=sql.100).aspx – vishal

相關問題