sql - 在SQL中使用子查询更新多行

标签 sql sql-server-2000 subquery sql-update

我有一个汇总表,从主表返回数据。我正在尝试从主表中的值更新某些摘要数据,例如:

update #summary
  set TopSpeed = CD.TopSpeed, SpeedTime = CD.TimeSent, SpeedDriver = CD.Driver
from
(
  select top 1 TopSpeed, TimeSent, Driver
  from CarData
  where CarData.VehicleId = #summary.VehicleId 
  and CarData.TimeSent between #summary.Start and #summary.Stop
  order by CarData.TopSpeed desc, TimeSent desc
) as CD


#summary临时表正在创建有关汽车出行的摘要数据。每辆车可以有多个行程,每个行程都有开始和停止时间。 CarData表包含所有详细的汽车数据,例如速度和位置等。

请你帮忙

谢谢,
罗伯特

最佳答案

试试这个:

UPDATE
    #summary
SET
    #summary.TopSpeed = CarData.TopSpeed ,
    #summary.SpeedTime = CarData.SpeedTime 
    ...
FROM
    #summary
INNER JOIN
    CarData
ON
    #summary.id = CarData.id AND (CarData.TimeSent BETWEEN #summary.Start AND #summary.Stop)

关于sql - 在SQL中使用子查询更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180411/

相关文章:

sql - MySql - 使用连接的子查询插入多行?

sql - ORACLE 11g SET COLUMN NULL 对于大表的特定分区

sql - 对数据集中的唯一数字组进行递归CTE

sql - 仅当给定查询不存在记录时,如何继续执行下一个任务?

c# - 等待响应时逐行传输数据

java - 如何在where子句中使用子查询?

sql - 如何加速递归 CTE

sql - 如何在sql server 2005中以文本形式查看作业

sql-server - 创建数据库错误: cannot create file

SQL LEFT JOIN 子查询别名