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'
During my day to day work, I frequently find useful information, from various blogs spread all over the Internet. In order to avoid others repeating my same researches, I decided to share my findings in this blog, with no claiming to be exhaustive nor teaching anything to anyone. These postings are provided 'AS IS' with no warranties, and confer no rights. The views expressed on this weblog are mine alone.
Visualizzazione post con etichetta T-SQL. Mostra tutti i post
Visualizzazione post con etichetta T-SQL. Mostra tutti i post
giovedì 26 agosto 2010
Iscriviti a:
Post (Atom)