update A
set CTLIB = (SELECT B.APPL
FROM B
WHERE B.nrprs = A.nppr)
where A.cdappl = 0
Ca ne passe pas... existerait il une autre syntaxe qui m'éviterait de faire un update pour chaque record...?
update A
set CTLIB = (SELECT B.APPL
FROM B
WHERE B.nrprs = A.nppr)
where A.cdappl = 0
Ca ne passe pas... existerait il une autre syntaxe qui m'éviterait de faire un update pour chaque record...?
Décrivez vos tables SVP en respectant ceci : http://www.developpez.net/forums/viewtopic.php?t=32668
Sans cela impossible de vous répondre !
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
D'autant plus que pour m'être fait engueu*** par SQLPro à ce proposselon la norme SQL, dans une requête UPDATE, vous ne pouvez pas mettre d'alias sur la table concernée.
Ca fonctionne , en fait le problème était qu'il n'existe pas toujours un enregistrement pour faire le lien dans la table B.
--> ainsi ca fonctionne (déso pas le temps pour expliquer les tables...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 update corobj.fcatm1d A set A.CTLIB = CASE WHEN (SELECT B.APPL FROM missdta.rlx100f B where B.nrprs = A.nppr) IS NULL THEN '???' else (SELECT B.APPL FROM missdta.rlx100f B where B.nrprs = A.nppr) end where A.cdappl = 0
Partager