2013-03-20 2 views
1
select k.Val, sum(k.Cnt) "Cnt" from 
(
(select a.Env_Location "Val", count(a.VolumeID) "Cnt" 
    from DTree 
    join ZCOP_APLNG_Documents a on 
    DTree.DataID = a.DataID and DTree.VersionNum = a.VersionNum 
    where 
    DTree.OwnerID = -2111 and 
    DTree.SubType not in (0, 136) and 
    a.Env_Location is not NULL 
    group by a.Env_Location 
    ) 

union 
    (select 
    b.Env_Location "Val", count(b.VolumeID) "Cnt" 
    from DTree 
    join ZCOP_APLNG_Corr b on 
    DTree.DataID = b.DataID and DTree.VersionNum = b.VersionNum 
    where 
    DTree.OwnerID = -2111 and 
    DTree.SubType not in (0, 136) and 
    b.Env_Location is not NULL 
    group by b.Env_Location 
    ) 
) k  
    group by k.Val 

누구든지이 작업을 도와 줄 수 있습니다. 오류 표시 Val 또는 Cnt가 잘못된 식별자입니다. 열에 일부 열 별칭을 사용할 수 없습니까 ??컬럼 별칭은 Oracle의 외부 쿼리에서 액세스 할 수 없습니다.

답변

1

case-sensitive identifiers (거의 항상 나쁜 생각)을 사용하려는 경우 해당 식별자에 대한 모든 참조는 대소 문자를 구분해야합니다. 귀하의 경우 "Val""Cnt"은 대소 문자를 구분하는 식별자이므로 대소 문자를 구분하는 구문을 사용하여 참조해야합니다. 예 :

SELECT k."Val", sum(k."Cnt") "Cnt" from 
    ... 
GROUP BY k."Val" 

대다수의 경우 대소 문자를 구분하지 않는 별칭을 사용하지 않으려합니다. 일반적으로 훨씬 더 유용 할 것입니다.

+0

감사합니다. 저스틴 .. 대/소문자를 구분하는 식별자에 대해 알지 못했습니다. –

관련 문제