我在SQL中有一个查询:
我有一张这样的表
id typeid amount created date parenttypeid
38 2 5000.00 2016-12-08 15:01:27.433 NULL
39 2 5000.00 2016-12-08 15:01:27.433 NULL
40 1 5000.00 2016-12-08 15:01:27.433 NULL
41 4 5000.00 2016-12-08 15:01:27.437 NULL
42 1 5000.00 2016-12-08 15:01:27.437 NULL
43 4 5000.00 2016-12-08 15:01:27.437 NULL
44 1 5000.00 2016-12-08 15:01:27.437 NULL
45 1 5000.00 2016-12-08 15:01:27.437 NULL
46 3 5000.00 2016-12-08 15:01:27.437 NULL
47 3 5000.00 2016-12-08 15:01:27.437 NULL
我需要找到特定号码的立即数并获取其父ID并在parenttypeid字段中更新
例如:
type id:4,它的前一个值是3,我们有2行,类型为id 3.我需要获取最新类型id的父ID - 即。,47。并将47更新为parenttypeid列。
我只需要sql查询
任何人都可以提供帮助。
此致 斯利拉姆
答案 0 :(得分:0)
这将为您提供所需的内容,假设您使用SQL Server并更新第一部分,我将您作为尝试
select top 1 id from table where typeid=4-1 order by id desc
答案 1 :(得分:0)
试试这个(SQL SERVER 2012或更高版本):
;WITH ToUpdate
AS (
SELECT TOP 1 id,LAG(id,1) OVER (ORDER BY typeid DESC) AS [val]
FROM [YourTable]
WHERE typeid=(LAG(typeid) OVER (ORDER BY typeid DESC))-1
ORDER BY id DESC
)
Update Y
SET Y.id=C.[val]
FROM CTE C
INNER JOIN [YourTable] Y ON Y.id=C.id