In SQL, one way to do this is with a join and aggregation:
select t.id,
max(t.A)*max(case when p.col = 'A' then p.coefficient end),
max(t.B)*max(case when p.col = 'B' then p.coefficient end),
. . .
from data t cross join
parameters p
group by t.id
You can also do it with an inline query in the select
statement:
select t.A*(select max(coefficient) from parameters where col = 'A'),
. . .
from data t
Assuming that you don't have too much data (that you have thousands, not millions of rows), either approach should perform reasonably.
By the way, if the parameters were stored in a single row, then a simple join and multiplication would suffice.
There is another approach, similar to the first, but perhaps clearer:
select t.id,
t.A*p.Acoefficient,
t.B*p.Bcoefficient,
. . .
from data t cross join
(select max(case when p.col = 'A' then coefficient end) as Acoefficient,
max(case when p.col = 'B' then coefficient end) as Bcoefficient,
...
parameters p
) p
I'm adding this, because this is probably how I would really code the solution.