Я все еще относительно новичок в использовании Oracle SQL и искал некоторую помощь по этой проблеме, которую я пытался решить:
У меня есть два отдельных запроса, к которым мне нужно как-то присоединиться вместе, чтобы создать временную таблицу с некоторыми значениями. Два запроса, которые не имеют перекрывающихся элементов:
select
t.segment,
sum(Case when t.cost >= 750000 then 750000 else t.cost end)/sum(t.revenue) as seg_pool
from data3 t
where t.date <= t.forecast_month and t.period = 'Current'
group by t.segment;
и
select
r.level,
sum(Case when t.cost >= 750000 then 750000 else t.cost end)/sum(revenue) as level_pool,
sum(Case when t.segment = 'S' then t.revenue else 0 end)/sum(t.revenue) as s_weight
from data3 t
left join sb.com r on t.state=r.state and t.cnty=r.cnty
where t.date <= t.forecast_month and t.period = 'Current'
group by r.level;
Вывод из запроса 1 выглядит как
Segment Seg_pool
A .078
B .09
И Вывод из запроса 2 выглядит как
Level Level_pool s_weight
L .06 .80
M .08 .82
H .09 .83
Мне нужно создать временную таблицу или отдельный запрос, который выполняет арифметическую операцию c для этих значений и выводит ее по комбинации сегмент / уровень. Операция арифметики c отличается для сегментов A и B: для сегментов A L, M и H формула имеет вид
A_pool% = levelpool -(segpoolB - segpoolA) ∗ (1 -s_weight)
Для сегментов B L, M и H - формула равно
B_pool% = A_pool% + (segpoolB - segpoolA)
Таким образом, результирующая временная таблица, которую мне нужно создать, выглядела бы примерно так, с "разницей" в качестве разницы между значением пула сегментов A & B
Segment Level Pool% s_weight difference
A L 0.06 0.80 0.12
A M 0.08 0.82 0.12
A H 0.09 0.83 0.12
B L 0.06 0.80 0.12
B M 0.08 0.82 0.12
B H 0.09 0.83 0.12
Или, может быть, было бы полезно просто добраться до этой таблицы, что является конечным результатом, который мне действительно нужно получить:
Segment Level Level_Pool
A L 0.0576
A M 0.07784
A H 0.08796
B L 0.0696
B M 0.08984
B H 0.0996
Любая помощь, полученная в этой окончательной временной таблице или запросе, будет высоко ценится, или просто указание в правильном направлении о том, как объединить два запроса, которые я уже настроил ... спасибо, Джордан:)