sql server查询相同主键的不同时间对应数据的差值
答案:1 悬赏:20 手机版
解决时间 2021-04-17 07:05
- 提问者网友:萌卜娃娃
- 2021-04-16 07:30
sql server查询相同主键的不同时间对应数据的差值
最佳答案
- 五星知识达人网友:街头电车
- 2021-04-16 07:47
有点复杂。
1、根据PK,为每条记录生成RowNumber() -->假定进入临时表#Data
SELECt *
RowNumber() OVER (PARTITION BY BuyerID ORDER BY CreateTime) AS RowNo
INTO #Data
FROM TableX
2、对此表进行自连接,条件为RowNo相差1
SELECt D1.BuyerID
,D1.CarMoney - D2.CarMoney AS [差价]
,...
FROM #Data D1
JOIN #Data D2 ON D2.BuyerID = D1.BuyerID AND D2.RowNo = D1.RowNo + 1
注:作为优化,你可以将2步并为一步。使用CTE(公共表达式),代码会更清晰。追问我好像搞定了 谢谢大神
1、根据PK,为每条记录生成RowNumber() -->假定进入临时表#Data
SELECt *
RowNumber() OVER (PARTITION BY BuyerID ORDER BY CreateTime) AS RowNo
INTO #Data
FROM TableX
2、对此表进行自连接,条件为RowNo相差1
SELECt D1.BuyerID
,D1.CarMoney - D2.CarMoney AS [差价]
,...
FROM #Data D1
JOIN #Data D2 ON D2.BuyerID = D1.BuyerID AND D2.RowNo = D1.RowNo + 1
注:作为优化,你可以将2步并为一步。使用CTE(公共表达式),代码会更清晰。追问我好像搞定了 谢谢大神
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯