2017-09-18 5 views
0

SQLクエリが生成されません。私は、次のようなFirebird DBにテーブルを持っています:SQLで時刻データ型の小計を取得する方法は?

ID | PROCESS | STEP | TIME 
654 |  1 | 1 | 09:08:40 
655 |  1 | 2 | 09:09:32 
656 |  1 | 3 | 09:10:04 
... 
670 |  2 | 15 | 09:30:05 
671 |  2 | 16 | 09:31:00 

などです。

各プロセスグループの小計が必要です(約7個です)。テーブルにはTIME列の「時刻」型があります.DATEDIFFで試していますが、動作しません。

+0

各ステップで費やされた時間、または各プロセスが費やした時間を返すようにしますか? – p1erstef

+0

各プロセスごと。私はSUMを使用する必要があることを知っていますが、他のSQL関数との組み合わせで把握することはできません – user3189986

+0

あなたは何をしようとしていますか? –

答えて

1

あなたはこの質問がここで回答されているSUM

を使用する必要があります。

How to sum up time field in SQL Server

とここです。より具体的なFirebirdのドキュメントについては

SUM total time in SQL Server

。和関数をここで読んでください。

Sum() - Firebird Official Documentation

+0

あなたの答えをありがとう。私は記事を読んでいて、何の成功もなしに解決策を試しました。ここからソリューションを試してみると(https://stackoverflow.com/q/9725732/2468342)、式の評価例外が発生します - > '0:00:00はTIMEタイプではありません' – user3189986

+0

質問に。 –

1

私はあなたが最大の時間と分の時間を取得するには、「GROUP BY」を使用する必要があります、とDATEDIFF関数でそれらを使用することだと思います。次のようなものがあります。

select process, datediff(second, max(time), min(time)) as nb_seconds 
from your_table 
group by process; 
関連する問題