内部联接问题要在SQL Server 2008中更新

杰森(D Jaison)

我有两个表,并尝试使用内部联接更新表1中的增量时间,但是我的以下查询遇到了问题。

UPDATE Table-1
SET Table-1.Time = DATEADD(minutes,,table-2.delta,table-1.time)
FROM Table-1
INNER JOIN Table-2 ON Table-1.TynameName = Table-2.Typename 
                   AND Table1.Ordersequence >= table-2.ordersequence;

订单编号大于4(10分钟)的订单的时间将被更新为订单9,然后订单9的增量更新的时间将被更新,而5分钟以上的时间将被更新。

我的结果应该是大于4的订单号应更新(10分钟)直到12(订单顺序),大于9的订单号应更新(5分钟)直到12(订单顺序)

现在,我正在使用while循环来解决问题,方法是选择表2的每一行并更新表1的时间。

是否可以使用联接来实现?

在此处输入图片说明

戈登·利诺夫(Gordon Linoff)

用途cross apply

Update Table-1
    set .Time= DATEADD(minutes, t2.delta, t1.time)
from [Table-1] t1 cross apply
      (select top 1 t2.*
       from [Table-2] t2
       where t1.Typename = t2.Typename and
             t1.Ordersequence >= t2.ordersequence
       order by t2.ordersequence desc
      ) t2;

您遇到的问题是中有多行匹配Table-2在这种情况下,可以任意选择行之一进行更新。cross apply修复了这个问题,通过选择的第一行的比赛。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

内部联接问题要在SQL Server 2008中更新

来自分类Dev

如何在SQL Server 2008中更新索引值

来自分类Dev

SQL Server 2008中的循环联接

来自分类Dev

自联接SQL Server 2008中的表

来自分类Dev

SQL Server中多个列上的内部联接

来自分类Dev

SQL Server 2008:使用内部联接的查询性能

来自分类Dev

SQL Server 2008:使用内部联接的查询性能

来自分类Dev

SQL Server 2008中的表格问题

来自分类Dev

SQL Server 2008中的表格问题

来自分类Dev

如何在Sql Server 2008中的一个MERGE查询中更新,插入,删除?

来自分类Dev

更新查询从SQL Server 2008中的源表中多个匹配的行?

来自分类Dev

SQL Server 2008中的减法

来自分类Dev

SQL Server 2008中的递归

来自分类Dev

在SQL Server 2008中订购

来自分类Dev

如何找到有关在sql server 2008中更新或插入sql表行的信息?

来自分类Dev

更新到Openrowset SQL SERVER 2008

来自分类Dev

如何定期更新SQL Server 2008表

来自分类Dev

更新到Openrowset SQL SERVER 2008

来自分类Dev

如何使用单个查询在SQL Server 2008中创建和更新视图

来自分类Dev

更新SQL Server 2008R2中表的XML列

来自分类Dev

在SQL Server 2008的同一数据库中复制表,然后更新内容

来自分类Dev

在SQL Server 2008 R2中更新大小写

来自分类Dev

与SQL Server 2008 R2中的内部联接一起使用时,哪里不存在

来自分类Dev

内部加入SQL Server 2008

来自分类Dev

在SQL Server 2008中的列中添加#

来自分类Dev

在SQL Server 2008中的表的单行中存储,检索和更新序列号(数据类型为int)

来自分类Dev

如何在SQL Server 2008中的单个存储过程中编写两个更新查询

来自分类Dev

在SQL Server 2008中的表的单行中存储,检索和更新序列号(数据类型为int)

来自分类Dev

SQL Server 2008中的REPLICATE和字符串问题

Related 相关文章

  1. 1

    内部联接问题要在SQL Server 2008中更新

  2. 2

    如何在SQL Server 2008中更新索引值

  3. 3

    SQL Server 2008中的循环联接

  4. 4

    自联接SQL Server 2008中的表

  5. 5

    SQL Server中多个列上的内部联接

  6. 6

    SQL Server 2008:使用内部联接的查询性能

  7. 7

    SQL Server 2008:使用内部联接的查询性能

  8. 8

    SQL Server 2008中的表格问题

  9. 9

    SQL Server 2008中的表格问题

  10. 10

    如何在Sql Server 2008中的一个MERGE查询中更新,插入,删除?

  11. 11

    更新查询从SQL Server 2008中的源表中多个匹配的行?

  12. 12

    SQL Server 2008中的减法

  13. 13

    SQL Server 2008中的递归

  14. 14

    在SQL Server 2008中订购

  15. 15

    如何找到有关在sql server 2008中更新或插入sql表行的信息?

  16. 16

    更新到Openrowset SQL SERVER 2008

  17. 17

    如何定期更新SQL Server 2008表

  18. 18

    更新到Openrowset SQL SERVER 2008

  19. 19

    如何使用单个查询在SQL Server 2008中创建和更新视图

  20. 20

    更新SQL Server 2008R2中表的XML列

  21. 21

    在SQL Server 2008的同一数据库中复制表,然后更新内容

  22. 22

    在SQL Server 2008 R2中更新大小写

  23. 23

    与SQL Server 2008 R2中的内部联接一起使用时,哪里不存在

  24. 24

    内部加入SQL Server 2008

  25. 25

    在SQL Server 2008中的列中添加#

  26. 26

    在SQL Server 2008中的表的单行中存储,检索和更新序列号(数据类型为int)

  27. 27

    如何在SQL Server 2008中的单个存储过程中编写两个更新查询

  28. 28

    在SQL Server 2008中的表的单行中存储,检索和更新序列号(数据类型为int)

  29. 29

    SQL Server 2008中的REPLICATE和字符串问题

热门标签

归档