2017-09-06 2 views
0

Crystal Report 실행 중 오류 메시지가 나타납니다. 그것은 "데이터베이스에서 데이터를 검색하지 못했습니다."라고 말합니다. 또한 ORA-01427 : 단일 행 하위 쿼리는 둘 이상의 행을 반환합니다. 꽤 똑바로 보인다. 그러나 나는 그것을 이해할 수 없다. 나는 하나 개의 명령은 하위 쿼리 보고서에 내장되어 있습니다 :데이터베이스에서 데이터를 가져 오지 못했습니다. ORA-01427

SELECT WA.HRORGANIZATION,TRIM(PA.ACTOR) AS "Epass",E.EMPLOYEE,TRIM(E.PRESENTATIONNAMESNAPSHOT),WA.HRORGANIZATIONUNIT,VW.ENTITYORGUNIT,VW.ENTITY 
FROM LTMPROD.AGENT AG 
LEFT OUTER JOIN LTMPROD.PARENTAGENT PA  ON PA.PARENTAGENT = AG.PARENTAGENT 
LEFT OUTER JOIN LTMPROD.EMPLOYEE E   ON TRIM(AG.KEYTEXT) = TRIM(E.HRORGANIZATION)||', '||TRIM(E.EMPLOYEE) 
LEFT OUTER JOIN LTMPROD.WORKASSIGNMENT WA ON WA.EMPLOYEE = E.EMPLOYEE 
              AND WA.WORKASSIGNMENT = E.PRIMARYWORKASSIGNMENT 
LEFT OUTER JOIN LTMPROD.XXX_ORGUNIT_ENTITY_VIEW VW ON VW.HRORGANIZATIONUNIT = WA.HRORGANIZATIONUNIT 
WHERE AG.BORBUSINESSCLASSNAME = 'Employee' 
AND TRIM(PA.ACTOR) = '{?LAWSONRS_CurrentUser}' 

또한 레코드 선택에 내장 된 공식이 있습니다

if {?LAWSONRS_CurrentUser} = "xyz" then 
    {JOBPOSTING.PDRBEGIN} in {?Start Date} to {?End Date} 
else 
{cmdEpass.Epass} = {?LAWSONRS_CurrentUser}   
and {XXX_ORGUNIT_ENTITY_VIEW.ENTITYORGUNIT} IN 
(
    SELECT {cmdEpass.ENTITYORGUNIT} 
    CASE 606: [606]  
    CASE 609: [609,610] 
    CASE 610: [609,610] 
    CASE 883: [883]  
    DEFAULT : [0] 
) 
and 
{JOBPOSTING.PDRBEGIN} in {?Start Date} to {?End Date} 

이 오류가 발생하는 것입니다 (서식에 대한 미안 문제)? 수식을 완전히 삭제하면 보고서가 올바르게 실행됩니다. 그래서 나는 문제가 명령에 있다고 생각하지 않는다. 하지만 여전히 사용자 Epass를 기준으로 필터링하고 싶습니다.

+0

수식이 여러 값을 반환하는 것처럼 보입니다. WHERE 절에서 같음 비교를 사용하고 있습니다. –

+0

제안이 있으십니까? – seth

+0

함수에서 여러 값을 반환하거나 = –

답변

0

수식이 두 개 이상의 요소를 반환합니다.

당신은 IN (...)

에 대한 =을 변경하거나 셀렉틴 한 행에 LIMIT 1를 사용할 수 있습니다.

관련 문제