Si deve aggiornare un campo di una tabella prendendo il valore da un’altra, dove il punto di contatto tra le due è rappresentato da un altro campo in comune tra la seconda ed una terza tabella.
In questo esempio il campo AuxiliaryCode della tabella FinalPromotion deve essere aggiornato con il valore del campo Code della DocumentCoupon che non ha FK verso FinalPromotion ma verso Document che a sua volta è legata a FinalPromotion.
Come sempre lo statement T-SQL che segue, potrebbe valere più di mille parole:
UPDATE FP
SET FP.AuxiliaryCode = A.Code
FROM FinalPromotion FP
INNER JOIN Document D
ON FP.DocumentGuid = D.Guid
INNER JOIN
(SELECT D.UpperDocumentGuid AS UDG, DC.Code FROM DocumentCoupon DC
INNER JOIN Document D
ON DC.Id = D.CouponId) A
ON D.UpperDocumentGuid = A.UDG
WHERE D.UpperDocumentGuid = 'b9464a81-b83c-4ce4-8758-b0e632240c2b'
Nessun commento:
Posta un commento