2011-02-14 2 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

+0

내 실제 쿼리는 다음과 같습니다. – Nag

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으로 작성하는 경향이 있습니다.

+0

다시 한번 감사드립니다. 계산에는 qty_release가 합계 내에 있어야합니다. – Nag

+0

@Nag - 아 맞아요. 이 경우'SUM (setup_ticks/100) + (SUM (run_ticks_lbr/100) * job.qty_released) '를 사용해야합니다. 집계 자체에서는 참조 할 수 없습니다. –

+0

@marting this는 ax + Bx가 아닙니다. 계산은 a + bx와 같습니다. (jrt-sch.setup-ticks/100) + ((jrt-sch.run-ticks-lb/100) * job.qty-released) – Nag

관련 문제