以下查询给出了错误。
SELECT job.job,
(
SELECT SUM((jrt_sch.setup_ticks / 100) + ((jrt_sch.run_ticks_lbr / 100) * job.qty_released))
FROM jrt_sch
WHERE jrt_sch.job = job.job
) plnlbr
FROM job
WHERE job.job = 'J000069762'
AND job.suffix = '0'
我无法在第二次选择中使用job.qty_released给出以下错误。
在包含外部引用的聚合表达式中指定了多个列。如果聚合的表达式包含外部引用,则该外部引用必须是表达式中引用的唯一列。
答案 0 :(得分:4)
要修复语法问题,您只需将引用移到括号外的job.qty_released
即可。
SELECT job.job,
job.qty_released * (
SELECT SUM((jrt_sch.setup_ticks / 100) + ((jrt_sch.run_ticks_lbr / 100)))
FROM jrt_sch
WHERE jrt_sch.job = job.job
) plnlbr
FROM job
WHERE job.job = 'J000069762'
AND job.suffix = '0'
我倾向于将此查询编写为join
。
答案 1 :(得分:0)
看起来应该是这样的:
SELECT job.job, SUM((jrt_sch.setup_ticks / 100) +
((jrt_sch.run_ticks_lbr / 100) * job.qty_released)) plnlbr
from job join jrt_sch on jrt_sch.job=job.job
where job.job ='J000069762' and job.suffix='0'
group by job.job