【问题标题】:Update Table at fixed interval of Time SQL Server以固定时间间隔更新表 SQL Server
【发布时间】:2020-03-27 18:18:05
【问题描述】:

我有一个包含 3 列的表格:ID、日期和 ColA

我想编写一个 Sql 查询,它将仅在每 3 天后使用另一个表中的值更新 ColA,否则 ColA 值应该为 0。

查询应按 ID 分组。

Table 1

ID    Date           ColA
 1   2020/01/01      0
 1   2020/01/02      0
 1   2020/01/03      Run Update Query
 1   2020/01/04      0
 1   2020/01/05      0
 1   2020/01/06      Run Update Query
 2   2020/02/09      0
 2   2020/02/10      0
 2   2020/02/11      Run Update Query
 2   2020/02/12      0
 2   2020/02/13      0
 2   2020/02/14      Run Update Query

有什么想法吗??谢谢

【问题讨论】:

    标签: sql sql-server tsql sql-update


    【解决方案1】:

    你可以使用窗口函数:

    with cte as (
        select colA, row_number() over(partition by id order by date) rn
        from mytable
    )
    update cte 
    set colA = case when rn % 3 = 0 then 'Run update query' else '0' end
    

    公用表表达式(aliasedcte) 通过增加date 对具有相同id 的记录进行排名。然后,外部查询根据排名分配正确的值。

    【讨论】:

      猜你喜欢
      • 2013-08-20
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 2020-03-25
      • 2017-05-10
      • 1970-01-01
      • 2011-06-03
      相关资源
      最近更新 更多