insert into tableA (column1)
select min(tableC.column1)
from tableB
inner join tableC on (tableC.coumn2 = tableB.column1
and tableB.column2 = tableA.column2)
group by tableA.column2
上記をtableB.column2 = tableA.column2
の条件に基づいてgroup byで挿入する代わりにgroup byで更新するように変更するにはどうすればよいですか?
SQL SERVER 2008.
を使用していることに注意してください
Update A set Column1 = minC
from (select Ab.Column2, min(C.Column1) as minC
from A Ab
inner join B on Ab.Column2 = B.Column2
inner join C on C.column2 = B.Column2 --No need to add again the A.col2 = B.col2
group by Ab.Column2) Grouped where A.Column2 = Grouped.Column2
これは、あなたの望むことですか?これにより、各columnAのC.Column1
の最小値が取得され、A.Column1
(前に挿入していた場所)で、条件A.Column2 = Grouped.Column2
に基づいて更新されます。
これが SQL-Fiddle Demo です