select
2.5*((r-i)/(r+(6*i)-(7.5*n)+1)) as tera,
(r-(2*i)-n)/(r+(2*i)-n) as tera2
from
(
select
sum(case when wavelength between 340 and 345 then reflectance end) as r,
sum(case when wavelength between 350 and 355 then reflectance end) as i,
sum(case when wavelength between 360 and 365 then reflectance end) as n
from
test
) vars
За множество таблици можете да използвате нещо като:
select
table_name,
2.5*((r-i)/(r+(6*i)-(7.5*n)+1)) as tera,
(r-(2*i)-n)/(r+(2*i)-n) as tera2
from
(
select
table_name,
sum(case when wavelength between 340 and 345 then reflectance end) as r,
sum(case when wavelength between 350 and 355 then reflectance end) as i,
sum(case when wavelength between 360 and 365 then reflectance end) as n
from
(
select 'table 1' as table_name, * from test
union all
select 'table 2', * from test
union all
select 'table 3', * from test
union all
select 'table 4', * from test
) as all_tables
group by
table_name
) vars
Просто трябва да модифицирате имената на таблиците към вашите действителни имена и да повторите union all
толкова пъти, колкото е необходимо.