0

誰かが私を助けてくれますか?このコードが実行されない理由がわかりません。

'0' || CASE
WHEN (EAmain.ActivityStopMin - EAmain.ActivityStartMin) < 0 THEN         (DATEDIFF(hh,EAmain.ActivityStartTimeHours || ':' ||     EAmain.ActivityStartTimeMin,EAmain.ActivityStopTimeHours || ':' ||     EAmain.ActivityStopTimeMin)-1)
WHEN (EAmain.ActivityStopMin - EAmain.ActivityStartMin) >= 0 THEN
(DATEDIFF(hh,EAmain.ActivityStartTimeHours || ':' ||     EAmain.ActivityStartTimeMin,EAmain.ActivityStopTimeHours || ':' ||     EAmain.ActivityStopTimeMin))
END || ':' || (DATEDIFF(n,EAmain.ActivityStartTimeHours || ':' ||     EAmain.ActivityStartTimeMin,EAmain.ActivityStopTimeHours || ':' ||     EAmain.ActivityStopTimeMin)#60) || '0' AS ActivityTotalTime,

編集:私はエラーコードを見つけました、ここにあります:

エラー#5540:SQLCODE:-29メッセージ:フィールド'EAMAIN.ACTIVITYSTOPMIN'が該当するテーブルに見つかりません^SELECT Name、Start_Time、Stop_Time、Visit_Date、Total_Time、ActivityStartTime、ActivityStopTime、CASE WHEN LEN(ActivityTotalTime)=?THEN SUBSTR(ActivityTotalTime、?、?)WHEN LEN(ActivityTotalTime)=?THEN ActivityTotalTime END AS ActivityTotalTime、Discipline FROM(SELECT Demographics。Name、Visits。Start_Time、Visits。Stop_Time、Visits。Visit_Date、Visits。Total_Time、EAmain。ActivityStartTime、EAmain。ActivityStopTime、?|| CASE WHEN(EAmain。Activity。

EDIT AGAIN !:このコードはCASEステートメントの前に実装されたものであり、機能しました:

'0' || DATEDIFF(hh,EAmain.ActivityStartTimeHours || ':' ||    
EAmain.ActivityStartTimeMin,EAmain.ActivityStopTimeHours || ':' ||     
EAmain.ActivityStopTimeMin) || ':' || (DATEDIFF(n,EAmain.ActivityStartTimeHours || ':' || 
EAmain.ActivityStartTimeMin,EAmain.ActivityStopTimeHours || ':' ||    
EAmain.ActivityStopTimeMin)#60) || '0' AS ActivityTotalTime,
4

1 に答える 1

1

最後の行であなたは得EAmain.ActivityStartTimeMin,EAmain.ActivityStopTimeHoursました。そのコンマは見当違いのようです。その)#60)最後の行のさらに2、3文字もそうです。

EAmain.ACTIVITYSTOPMINは存在しません。:)エラーメッセージで、EMainはテーブルではなくクエリであることがわかります。クエリでもそのフィールドを選択してください。

于 2012-08-31T20:27:47.803 に答える