子查询返回了多个值-使用特定日期的值更新日期范围内的记录

Tonno22

我正在尝试为比“ 2020-10-12”新的记录更新LocationNumber值。更新的记录应该是那些LocationNumber不等于'2020-10-10'的记录。12日之后,LocationNumber值对于某些记录已变得不正确,因此我正在尝试对其进行修复。

编辑:记录必须已经存在于'2020-10-10'上,我不想更新该日期系统中没有的新记录。

这是我尝试过的选项:

update ReadHeader as z0
set locationnumber = z1.locationnumber
from ReadHeader as z1
where z1.identifier = z0.identifier
and z1.LocationNumber in(select LocationNumber from ReadHeader where ReadLogDate = '2020-10-10')
and z0.LocationNumber in(select LocationNumber from ReadHeader where ReadLogDate > '2020-10-12')
and z0.LocationNumber not in(select LocationNumber from ReadHeader where ReadLogDate = '2020-10-10')




update ReadHeader SET LocationNumber = (SELECT LocationNumber from ReadHeader where ReadLogDate = '2020-10-10')
where ReadLogDate > '2020-10-12' 
and LocationNumber not in(select LocationNumber from ReadHeader where ReadLogDate = '2020-10-10')

样本数据,每天都有成千上万的唯一“标识符”每天都有新的读取,我只想修复那些在“ 2020-10-12”之后具有不正确的LocationNumbers的标识符

Identifier       LocationNumber       AcctNum       ReadLogDate    Read Value

T108468264          336086           94103494      '2020-10-10'        5
T108468264          336086           94103494      '2020-10-11'        8
T108468264          888888           94103494      '2020-10-12'        19
T108468264          888888           94103494      '2020-10-13'        25
T108468264          888888           94103494      '2020-10-14'        30

所需结果:

Identifier       LocationNumber       AcctNum       ReadLogDate    Read Value

T108468264          336086           94103494      '2020-10-10'        5
T108468264          336086           94103494      '2020-10-11'        8
T108468264          336086           94103494      '2020-10-12'        19
T108468264          336086           94103494      '2020-10-13'        25
T108468264          336086           94103494      '2020-10-14'        30

任何帮助表示赞赏!

戈登·利诺夫

嗯。使用可更新的CTE:

with toupdate as (
      select rh.*,
             max(case when ReadLogDate = '2020-10-12' then locationnumber end) over (partition by identifier) as locationnumber_20201012
      from ReadHeader rh
     )
update toupdate
    set locationnumber = locationnumber_20201012
    where readlogdate > '2020-10-12';

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更新失败,因为子查询返回了多个值

来自分类常见问题

子查询使用Iif条件返回了多个值

来自分类Dev

子查询使用Iif条件返回了多个值

来自分类Dev

运行更新查询时出现“子查询返回了多个值”错误

来自分类Dev

执行更新查询后,子查询返回了多个值错误

来自分类Dev

更新联接导致错误:子查询返回了多个值

来自分类Dev

大量更新表。错误消息512-子查询返回了多个值。...'

来自分类Dev

SQL Server子查询返回了多个值。当子查询使用触发器遵循=,!=,<,<=,>,> =时,这是不允许的

来自分类Dev

SQL查询,用于查找某个日期范围内某个特定日期存在的所有记录

来自分类Dev

Spark SQL-如何对链接到特定日期的日期范围内的值求和

来自分类Dev

子查询在声明开始日期和结束日期后返回了 1 个以上的值

来自分类Dev

子查询为使用案例的选择查询返回了1个以上的值

来自分类Dev

SQL子查询返回了多个值

来自分类Dev

SQL子查询返回了多个值

来自分类Dev

在特定日期范围内的Python代码中的SQL选择查询

来自分类Dev

Laravel查询:在特定日期范围内获取所有未预订的车辆

来自分类Dev

如何在 SQL Server 中查询特定日期范围内的数据

来自分类Dev

子查询返回了1个以上的值。在SQL Server 2012中使用where子句

来自分类Dev

子查询即使使用IN运算符也返回了超过1个值

来自分类Dev

如果观察值不在相邻列的特定日期范围内,我希望消除它们

来自分类Dev

访问查询以返回日期范围内未找到的记录

来自分类Dev

子查询返回了1个以上的值。当子查询使用比较运算符时,这是不允许的

来自分类Dev

查询Laravel 4中特定日期范围的数据记录

来自分类Dev

Android SQLLITE查询以获取特定范围内的日期值

来自分类Dev

MySQL查询返回可变日期范围内的多个计数

来自分类Dev

从子查询Oracle SQL返回的值更新日期字段

来自分类Dev

在日期范围内查询文本并返回相应的值

来自分类Dev

SQL插入错误-“子查询返回了多个值”

来自分类Dev

T-SQL子查询返回了多个值

Related 相关文章

  1. 1

    更新失败,因为子查询返回了多个值

  2. 2

    子查询使用Iif条件返回了多个值

  3. 3

    子查询使用Iif条件返回了多个值

  4. 4

    运行更新查询时出现“子查询返回了多个值”错误

  5. 5

    执行更新查询后,子查询返回了多个值错误

  6. 6

    更新联接导致错误:子查询返回了多个值

  7. 7

    大量更新表。错误消息512-子查询返回了多个值。...'

  8. 8

    SQL Server子查询返回了多个值。当子查询使用触发器遵循=,!=,<,<=,>,> =时,这是不允许的

  9. 9

    SQL查询,用于查找某个日期范围内某个特定日期存在的所有记录

  10. 10

    Spark SQL-如何对链接到特定日期的日期范围内的值求和

  11. 11

    子查询在声明开始日期和结束日期后返回了 1 个以上的值

  12. 12

    子查询为使用案例的选择查询返回了1个以上的值

  13. 13

    SQL子查询返回了多个值

  14. 14

    SQL子查询返回了多个值

  15. 15

    在特定日期范围内的Python代码中的SQL选择查询

  16. 16

    Laravel查询:在特定日期范围内获取所有未预订的车辆

  17. 17

    如何在 SQL Server 中查询特定日期范围内的数据

  18. 18

    子查询返回了1个以上的值。在SQL Server 2012中使用where子句

  19. 19

    子查询即使使用IN运算符也返回了超过1个值

  20. 20

    如果观察值不在相邻列的特定日期范围内,我希望消除它们

  21. 21

    访问查询以返回日期范围内未找到的记录

  22. 22

    子查询返回了1个以上的值。当子查询使用比较运算符时,这是不允许的

  23. 23

    查询Laravel 4中特定日期范围的数据记录

  24. 24

    Android SQLLITE查询以获取特定范围内的日期值

  25. 25

    MySQL查询返回可变日期范围内的多个计数

  26. 26

    从子查询Oracle SQL返回的值更新日期字段

  27. 27

    在日期范围内查询文本并返回相应的值

  28. 28

    SQL插入错误-“子查询返回了多个值”

  29. 29

    T-SQL子查询返回了多个值

热门标签

归档