Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Update table with left join
Message
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Versions des environnements
SQL Server:
SQL Server 2008
Application:
Desktop
Divers
Thread ID:
01526632
Message ID:
01526649
Vues:
35
>>>>>is something like this possible? I get an error, but I thought it should have worked:
>>>>>
>>>>>UPDATE EmpItems 
>>>>>    LEFT JOIN HistItems ON HistItems.eiKey = EmpItems.eiKey
>>>>>    WHERE HistItems.DelFlag = 0 
>>>>>    SET EmpItems.itOnPosted = 1, EmpItems.itBalAmt = HistItems.itBalNew + HistItems.itPostCalc
>>>>>
>>>>>Maybe I'm doing something wrong?
>>>>
>>>>The SET clause must be right after UPDATE.
>>>>
>>>>UPDATE EmpItems 
>>>>SET itOnPosted = 1, 
>>>>itBalAmt = HistItems.itBalNew + HistItems.itPostCalc
>>>>
>>>>FROM EmpItems
>>>>INNER JOIN HistItems ON HistItems.eiKey = EmpItems.eiKey -- no need to use LEFT JOIN
>>>>    WHERE HistItems.DelFlag = 0 
>>>>
>>>
>>>I was so used to flip that around in VFP!
>>
>>Hmm, never tried flipping it around in VFP either. BTW, pay attention to other changes I made in your query.
>
>Great, it's working good, and fast. Problem was that originally I had a scan doing the updates in Business objects and posting one by one, and that took too long, so I had to do a direct query to update all at once.

I am not sure why do you need inner join here. Why not just:
UPDATE EmpItems ;
SET itOnPosted = 1, ;
itBalAmt = HistItems.itBalNew + HistItems.itPostCalc;
FROM HistItems where HistItems.eiKey = EmpItems.eiKey and HistItems.DelFlag = 0 
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform