我得到了具有用户ID的表,并在表格中引用了先前引用的ID,如下所示。
如何查询最早的参考ID及其日期结果?
User ID Previous ID Date
9990002939 9990000321 Apr-08
9990000321 9990000021 Apr-04
9990000021 9990000015 Jun-02
9990000015 May-00
如果提供的ID是9990002939 - >查询结果应该是 9990000015 May-00
答案 0 :(得分:1)
我假设使用SQL Server,因此根据您实际使用的内容,方法可能会有所不同。
您可以使用递归cte:
;WITH cte AS (SELECT * ,Rnk = 1
FROM Table1
WHERE UserID = '9990002939'
UNION ALL
SELECT a.*,Rnk = Rnk+1
FROM Table1 a
JOIN cte b
ON a.UserID = b.PreviousID)
,cte2 AS (SELECT *,ROW_NUMBER() OVER(ORDER BY Rnk DESC)'RowRank'
FROM cte)
SELECT *
FROM cte2
WHERE RowRank = 1
答案 1 :(得分:0)
SELECT USER_ID,DATE,MIN(USER_ID) AS mini FROM YOUR TABLE HAVING USER_ID=mini