我只是没有下,所以我会尝试一些SQL,看看这个我们更加接近......
这是否选择放弃在选择时尚预期的效果? (我可能有Y/N的倒置)
SELECT ID, Case when D3a.Rank < D3b.Rank then 'N'
when D3a.Rank > D3b.Rank then 'Y'
when D3a.Rank = D3b.Rank then 'N'
end as Rank_down
FROM data2 D2
INNER JOIN data3 D3a
on D3a.From_To = D2.From
INNER JOIN data3 D3b
on D3b.From_To = D2.To
如果是这样,我们只需要根据它进行更新。
UPDATE Data1 d1
INNER JOIN ( SELECT ID, Case when D3A.Rank < D3b.Rank then 'N'
when D3A.Rank > D3B.Rank then 'Y'
when D3A.Rank = D3B.Rank then 'N'
end as Rank_down
FROM data2 D2
INNER JOIN data3 D3a
on D3a.From_To = D2.From
INNER JOIN data3 D3b
on D3B.From_To = D2.To) B
on B.ID = d1.ID
set d1.Rank_down = B.Rank_Down
没有时间/顺序为您rank_down定义。订单没有在表格中定义,所以我们如何知道如何对数据进行排序3,以便我们可以获得正确的排名?根据您的样本数据定义一些预期结果以帮助确认。因此,ID 1应该从1到2排在第一位,ID 2从3到5就是Y? ID 3为空,因为它没有移动? – xQbert
在data3中不保证订单。我们如何知道按照什么顺序放置这些;以便队伍和从/上下适合排名? – xQbert
然后它不能完成。由于表3中的数据顺序不能保证,所以我们可以看到CD,2然后是AB,1。在这种情况下,rank_down将是N还是您如何定义订单的排名?并且AB和CD定义了向上/向下? PQ会是什么? – xQbert