gpt4 book ai didi

sql - 更新列具有最高值的位置

转载 作者:行者123 更新时间:2023-12-05 09:21:38 24 4
gpt4 key购买 nike

我正在尝试为具有以下结构的表编写一个简单的“撤消”系统:

id    element    position    start_date    end_date
1 1 23 01/01/2015 05/01/2015
2 2 36 01/01/2015 NULL
3 1 17 05/01/2015 NULL

因此,当为现有元素添加新操作时,它会添加一个包含新位置和当前日期的新行,并将该元素上一行的结束日期更改为当前日期。

现在,要撤消此操作,我删除了未定义 end_date 的元素行(这是该元素的最新操作),但我必须将上一行的 end_date 更改为 null

因此,在伪语言中,所需的查询将是:

UPDATE [table] SET end_date = NULL
WHERE element = 1
AND start_date = 'highest_start_date_to_be_found_of_this_element'

问题:要输入什么而不是 highest_start_date_to_be_found_of_this_element 才能使其正常工作?

最佳答案

这应该为您提供每个条目的最新开始日期,这些条目在元素中具有与更新语句中定义的值相同的值。所以你只需要在一个地方改变它。

UPDATE [table] t SET t.end_date = NULL WHERE t.element = 1 AND t.start_date = (select max(sub.start_date) from [table] sub where sub.element = t.element)

关于sql - 更新列具有最高值的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31003322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com