在包含外部引用的聚合表达式中指定多列
问题描述:
以下查询发生错误。在包含外部引用的聚合表达式中指定多列
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在第二方面选择给出以下错误。
多个列在包含外部引用的聚合表达式中指定。如果要汇总的表达式包含外部引用,那么该外部引用必须是表达式中引用的唯一列。
答
它应该是这个样子:
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
答
要解决你只需要参考移到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
。
需要回复。但我必须使用选择列表中的一些其他领域,这就是为什么我没有使用按功能分组。 – Nag 2011-02-14 12:04:48
以下是我的实际查询。 – Nag 2011-02-14 12:17:29