Обновление Java SQL-запроса из UNION в JOIN - PullRequest
0 голосов
/ 07 ноября 2019

У меня следующий запрос, таблица PCA и ПК имеют схожую структуру (одинаковые столбцы).

select session, wc, sum(duration) / (sum(delta) + sum(duration)) as wc_efficiency from
(
SELECT     
a.session, a.panel,
a.line_location as WC, 
a.line_duration as duration, 
a.line_lead_duration - b.line_lead_duration as delta

FROM PCA a 
join PC b
on a.batch = b.batch and a.session = b.session and a.panel = b.panel
where a.line_location is not null

union

SELECT 

a.session, a.panel,
a.completion_location as WC2, 
a.completion_duration as duration2, 
a.completion_lead_duration  - b.completion_lead_duration as delta2

FROM PCA a 
join PC b
on a.batch = b.batch and a.session = b.session and a.panel = b.panel
where a.completion_location is not null

)
group by session, wc

Теперь я хочу найти wc2 & wc_efficiency2 для длительности 2 и delta2 в виде отдельных столбцов. Для этого я обновляю свои запросы следующим образом:

select session, wc1, sum(duration1) / (sum(delta1) + sum(duration1)) as wc_efficiency1, wc2, sum(duration2) / (sum(delta2) + sum(duration2)) as wc_efficiency2 from
(
SELECT 
a.session as ss, a.panel as pl,
a.line_location as WC1, 
a.line_duration as duration1, 
a.line_lead_duration - b.line_lead_duration as delta1

FROM PCA a 
join PC b
on a.batch = b.batch and a.session = b.session and a.panel = b.panel
where a.line_location is not null
) t1

join

(
SELECT 
a.session as ss, a.panel as pl,
a.completion_location as WC2, 
a.completion_duration as duration2, 
a.completion_lead_duration  - b.completion_lead_duration as delta2

FROM PCA a 
join PC b
on a.batch = b.batch and a.session = b.session and a.panel = b.panel
where a.completion_location is not null
) t2
ON t1.ss = t2.ss and t1.pl = t2.pl
group by wc1, wc2

Запрос не запускается, я не могу найти ошибку.

...