У меня есть 2 таблицы, описанные ниже.Обновление нескольких столбцов таблицы из одной таблицы в одной команде в SQL Server 2008
create table #tbl_1
(
nm varchar(20) not null,
min_val float,
max_val float,
dept varchar(50)
)
insert into #tbl_1(nm) values('A')
insert into #tbl_1(nm) values('B')
insert into #tbl_1(nm) values('C')
create table #tbl_2
(
nm varchar(20) not null,
val float
)
insert into #tbl_2 values('A', 10)
insert into #tbl_2 values('A', 20)
insert into #tbl_2 values('A', 30)
insert into #tbl_2 values('B', 50)
insert into #tbl_2 values('B', 40)
insert into #tbl_2 values('C', 15)
insert into #tbl_2 values('D', 60)
insert into #tbl_2 values('B', 65)
Теперь Обновление операции:
update #tbl_1 set min_val=(select min(val) from #tbl_2 where #tbl_1.nm=#tbl_2.nm)
update #tbl_1 set max_val=(select max(val) from #tbl_2 where #tbl_1.nm=#tbl_2.nm)
select * from #tbl_1
drop table #tbl_1
drop table #tbl_2
В моей реальной таблице # tbl_1 имеет 114 столбцов и их обновления с 17 различных таблиц, таких как # tbl_2. Поэтому, когда я обновляю # tbl_1, я должен выполнить 113 SQL Statement. Есть ли способ, которым я могу выполнить только 17 SQL Statement или 1 SQL Statement для обновления # tbl_1?
Заранее спасибо.
второй и третьей линии набор min_val = t2.minval, max_val = t2.maxval будет t2sum.minval, t2sum.maxval. Сейчас все в порядке. Благодарю. –