2011-02-14 127 views
4

以下查询发生错误。在包含外部引用的聚合表达式中指定多列

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

它应该是这个样子:

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 
+0

需要回复。但我必须使用选择列表中的一些其他领域,这就是为什么我没有使用按功能分组。 – Nag 2011-02-14 12:04:48

+0

以下是我的实际查询。 – Nag 2011-02-14 12:17:29

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

相关问题