将Java sql查询从UNION更新为JOIN

将Java sql查询从UNION更新为JOIN,sql,h2,Sql,H2,我有以下疑问,, 表PCA和PC具有相似的结构(相同的列) 现在,我想将duration2和delta2的wc2和wc_efficiency2作为单独的列进行分离。为了实现这一点,我更新了我的查询,如下所示: select session, wc1, sum(duration1) / (sum(delta1) + sum(duration1)) as wc_efficiency1, wc2, sum(duration2) / (sum(delta2) + sum(duration2)) as w

我有以下疑问,, 表PCA和PC具有相似的结构(相同的列)

现在,我想将duration2和delta2的wc2和wc_efficiency2作为单独的列进行分离。为了实现这一点,我更新了我的查询,如下所示:

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

查询没有运行,我找不到错误

“查询不运行”这具体是什么意思?它会给你一个语法错误吗?它是否运行但不返回结果?还是错误的结果?它是否开始运行,但似乎需要无限的时间?更新您的问题添加适当的数据样本,并将预期结果作为表格文本查询开始运行,但似乎需要无限的时间。@下划线d
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