使用内连接更新查询

Update query using inner join

为什么我在这部分存储过程中出现以下语法错误:

Incorrect syntax near the keyword 'FROM'.


WITH CTE_Residence_Overtime
    AS
    (
      SELECT * 
      FROM #Residence
    )
    UPDATE t1 
    SET t1.over_time = t1.over_time + CONVERT(TIME, CAST(CTE_Residence_Overtime.overtimeHours AS VARCHAR(2))  
    FROM r_overtime AS t1
    INNER JOIN CTE_Residence_Overtime 
    ON t1.[trans_date] = CTE_Residence_Overtime.[dayDate];

您在 set:

上缺少右括号
    SET t1.over_time = t1.over_time +
                       CONVERT(TIME,
                               CAST(CTE_Residence_Overtime.overtimeHours AS VARCHAR(2)
                                   )  
                              )
------------------------------^

我想你少了一个括号

WITH CTE_Residence_Overtime
    AS
    (
      SELECT * 
      FROM #Residence
    )
    UPDATE t1 
    SET t1.over_time = t1.over_time + CONVERT(TIME, CAST(CTE_Residence_Overtime.overtimeHours AS VARCHAR(2)))  
    FROM r_overtime AS t1
    INNER JOIN CTE_Residence_Overtime 
    ON t1.[trans_date] = CTE_Residence_Overtime.[dayDate];

少一个括号会让你的生活变得非常忙碌!

WITH CTE_Residence_Overtime
        AS
        (
          SELECT * 
          FROM #Residence
        )
        UPDATE t1 
        SET t1.over_time = t1.over_time + CONVERT(TIME, CAST(CTE_Residence_Overtime.overtimeHours AS VARCHAR(2)))  
        FROM r_overtime AS t1
        INNER JOIN CTE_Residence_Overtime 
        ON t1.[trans_date] = CTE_Residence_Overtime.[dayDate];