2012-09-04 4 views
0

을 계산 CacheSQL :내가이 포럼과 같은 열에서 총 시간을 계산하기 위해 찾고 있어요 총 시간

SEC_TO_TIME(SUM(TIME_TO_SEC(CASE WHEN (SUBSTR(Total_Time,1,2) - 
SUBSTR(ActivityTime,1,2)) < 0 
THEN '0' || DATEDIFF(hh,Total_Time,ActivityTime)-1 || ':' || DATEDIFF(mi,Total_Time,ActivityTime) 
WHEN (SUBSTR(Total_Time,1,2) - SUBSTR(ActivityTime,1,2)) >= 0 
THEN '0' || DATEDIFF(hh,Total_Time,ActivityTime) || ':' || 
DATEDIFF(mi,Total_Time,ActivityTime) 
END))) AS TotalVariance, 

모든 : 여기

https://stackoverflow.com/questions/3054943/calculate-sum-time-with-mysql

가 작동하지 않습니다 내 코드입니다 도움이 될 것입니다! 감사!

+0

ERROR # 5540 : SQLCODE : -359 메시지 : 사용자 정의 SQL 함수 'SQLUSER.SEC_TO_TIME'이 (가) 존재하지 않습니다? 왜냐하면 SEC_TO_TIME은 캐시에 내장되어 있지 않기 때문입니다. 전체 쿼리 및 수행하려는 작업을 포함하는 것이 어떻습니까? – psr

답변

1

도움이 될지 잘 모르겠습니다. ObjectScript에는 Calculated/SqlComputed 속성이 있습니다. 기본적으로 다음과 같은 속성을 정의 할 수 있습니다.

Property TotalTime As %Integer [ Calculated, SqlComputeCode = 
     {s {TotalTime}=##class(SomeClass).SomeClassMethod({Id})}, SqlComputed ] 

이제 SomeClassMethod를 작성하면됩니다. % Open을 포함한 모든 ObjectScript 코드를 계속 진행할 수 있으며 주기적으로 만들지 않아야합니다. 당신은 단지 그것을 확인하기 위해 다른 필드의 일부를해야하는 경우에는이 방법으로 갈 수 있습니다 대신 ID를 얻고 호출하는 수업 방법에 대한 입력과 같은 속성을 얻을 것이다,이

Property TotalTime As %Integer [ Calculated, SqlComputeCode = 
     {s {TotalTime}=##class(Some).SomeCM({PropA}, {PropB})}, SqlComputed ] 

을 .. % 오픈 (신분증).

어느 쪽이든, 결과 계산 된 속성을 인덱스에도 사용할 수 있습니다.