update specyficznej tabeli

0

Szanowni,

Mam taką tabelę

screenshot-20191107153431.png

Czerwone pola to pierwotnie są null'e.

Pierwsza kolumna Col1 zawiera identyfikator obiektu.
Druga kolumna Col2 id parametru.
Trzecia kolumna Col3 wartość parametru.

Potrzebuję te puste komórki wypełnić wartością z kolumny Col3 dla Col2=A, wyciągniętą z obiektów, które mają taką samą wartość parametru dla Col2=B.

Patrzę więc na Col3 dla obiektu gdzie Col1=2 i Col2=B. Jest tam wartość 'Widelec'.
Wartość w Col3=Widelec dla Col2=B mają jeszcze obiekty dla Col1=1, 3 i 6.
Obiekty te w Col3 dla Col2=A mają wpisane 'Adam'
Wartość w Col3 dla Col2=A to Adam.
Adam jest wpisywany do Col3 dla Col1=2 i Col2=A.
Analogicznie wpisuje Bartek dla obiektu nr 5 w Col1.

Jak napisać takiego update'a? Mnie to przerasta.

0
update
    tab
set
    col3 = (select col3 from tab as sq where sq.col2='b' and sq.col1 = tab.col1)
where
    col3 is null
   and col2='a'
0

@Panczo: Tu by wyszło że zostanie wpisane dla col1=2, col2=A "Widelec" a dla col1=5, col2=A "Łyżka", a powinno być "Adam" i "Bartek", więc np.:

update
    t
set
    col3 = (select top 1 col3 from @tab as sq where sq.col2='a' and sq.col1 = (select top 1 col1 from @tab sq2 where sq2.col3 = sq.col3 and sq2.col3 is not null))
from
	@tab t
where
    col3 is null
   and col2='a'

1 użytkowników online, w tym zalogowanych: 0, gości: 1