2017-09-06 6 views
0

実行中のCrystal Reportがエラーメッセージを受け取りました。 「データベースからデータを取得できませんでした」と表示されます。 「ORA-01427:1行副問合せは複数の行を戻します」というメッセージも表示されます。かなりまっすぐに見えますが、私はそれを理解することはできません。私は1つのコマンドは、noサブクエリでレポートに組み込まれています:データベースからデータを取得できませんでした。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 (...)

ため=を変更したり、セレクチンちょうど1行分のLIMIT 1を使用することができます。

関連する問題