0

このフォーラムのような列から合計時間を計算しようとしています:

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

動作していない私のコードは次のとおりです。

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,

どんな助けでも素晴らしいでしょう!ありがとう!

4

1 に答える 1

1

これがあなたや誰かに役立つかどうかはわかりません。ObjectScript には Calculated/SqlComputed プロパティがあります。基本的に、次のようなプロパティを定義できます。

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

あとは SomeClassMethod を書くだけです。%Open を含む任意の ObjectScript コードを継続できますが、循環させないでください。他のフィールドの一部のみが必要な場合は、次の方法で実行できます。

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

そこでは、ID を取得して ..%Open(Id) を呼び出す代わりに、クラス メソッドの入力としてプロパティを取得します。

どちらの方法でも、結果の計算されたプロパティをインデックスに対しても使用できます。

于 2013-06-03T16:25:32.543 に答える