SQL update query syntax with inner join

前端 未结 3 891
孤街浪徒
孤街浪徒 2020-12-10 01:08

Can anyone find my error in this query? I\'m using SQL Server 2000 and I want to update all entries in the CostEntry table to the corresponding value in the ActiveCostDetai

相关标签:
3条回答
  • 2020-12-10 01:28

    Once you have set an alias name for the table, you cannot use the table name. Try your query this way, it will work.

    UPDATE CostEntry CE 
    
            INNER JOIN 
                ActiveCostDetails AD 
                ON (CE.lUniqueID = AD.UniqueID)
    
               SET CE.sJobNumber = AD.JobNumber
    
             WHERE CE.SEmployeeCode = '002'
               AND SubString(CostCentre, 1, 1) = sDepartmentCode
               AND substring(CostCentre, 3, 1) = sCategoryCode
               AND substring(CostCentre, 5, 2) = sOperationCode
    
    0 讨论(0)
  • 2020-12-10 01:33

    The SET needs to come before the FROM\JOIN\WHERE portion of the query.

    UPDATE CE
    SET sJobNumber = AD.JobNumber
    FROM CostEntry CE 
        INNER JOIN ActiveCostDetails As AD 
            ON CE.lUniqueID = AD.UniqueID
    WHERE CE.SEmployeeCode = '002'
        AND SubString(CostCentre, 1, 1) = sDepartmentCode
        AND substring(CostCentre, 3, 1) = sCategoryCode
        AND substring(CostCentre, 5, 2) = sOperationCode
    
    0 讨论(0)
  • 2020-12-10 01:34

    This should work

    UPDATE CE
    SET CostEntry.sJobNumber = ActiveCostDetails.JobNumber
    FROM CostEntry CE 
    INNER JOIN ActiveCostDetails As AD ON CostEntry.lUniqueID = ActiveCostDetails.UniqueID       
         WHERE CostEntry.SEmployeeCode = '002'
           AND SubString(CostCentre, 1, 1) = sDepartmentCode
           AND substring(CostCentre, 3, 1) = sCategoryCode
           AND substring(CostCentre, 5, 2) = sOperationCode
    
    0 讨论(0)
提交回复
热议问题