さて、私はこのようなテーブルを持っています
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
しかし、コード11の値ではなく、コード10で値を更新しました。どうすればできますか?