Подтвердить что ты не робот

Обновление SQL Server с помощью группы

 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?

Обратите внимание, что я использую SQL SERVER 2008.

4b9b3361

Ответ 1

  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

Это то, что вы хотите? Это получит для каждого столбца значение C.Column1 min и обновит его в A.Column1 (там, где вы вставляли ранее), на основе условия A.Column2 = Grouped.Column2.

здесь Демо-версия SQL-Fiddle