好吧,我有一张这样的桌子
id | idtable2|value | code |name |
1 | 3 |983 | 10 |Total |
2 | 4 |89 | 10 |type 4 |
3 | 5 |299 | 10 |type 5 |
4 | 6 |0 | 10 |type 6 |
5 | 7 |72 | 10 |type 7 |
6 | 8 |523 | 10 |type 8 |
7 | 4 | | 11 |percentaje4|
8 | 5 | | 11 |percentaje5|
9 | 6 | | 11 |percentaje6|
10 | 7 | | 11 |percentaje7|
11 | 8 | | 11 |percentaje8|
我有我的价值观,我需要有他们的百分比。这些百分比基于您可以看到的值。例如,要获取 id 为 7 的行,我可以这样做
declare @total int
set @total=(select value from table where name='total')
update table set value=(select value from table where code=1' and name='type 4')/@total
我需要对所有百分比的行执行此操作,但这是一个动态表。在另一个表中,我有一个 id,table1.name it's equals to table2.name
每个代码 (10,11) 的名称 () 和 table1 将有一个名称(来自 table2)
我怎样才能得到这个值?我尝试了一个查询。
update ce set valor=valor/@total from #table1 ce inner join table2 m
on ce.t2id=m.id
where codigo=10
但我得到它用代码 10 更新值,而不是用代码 11 更新值。我该怎么做?