我有 2 张桌子,如下所述。
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 语句。有什么方法可以只执行 17 个 SQL 语句或 1 个 SQL 语句来更新#tbl_1?
提前致谢。