Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Access 2013)
時間の計算
投稿日時: 19/10/28 19:28:59
投稿者: ジッタ

あるソフトでソフトの稼働時間を取得しております。
 
使用PC  アプリ名 稼動時間
PC1 A 0:00:10
PC1 A 0:01:20
PC1 B 0:00:30
 
といデータが入っております。
 
このデータを
PC1 A 0:01:30
PC1 B 0:00:30
 
という風に集計したいと考えております。
稼働時間は日付型です。
 
現状テーブルTをクエリでグループ化して、稼働時間を合計すると、
稼働時間の結果が、0.1111111E-03という感じになり、
正しく集計されません。
 
SELECT T.[使用PC], T.[アプリ名], Sum(T.稼働時間) AS 稼働時間の合計
FROM T
GROUP BY T.[使用PC], T.[アプリ名]
 
どのようにすれば正しく計算されますか?
宜しくお願い致します。
 
 
            

回答
投稿日時: 19/10/29 08:49:44
投稿者: hatena
投稿者のウェブサイトに移動

ジッタ さんの引用:
稼働時間は日付型です。
 
現状テーブルTをクエリでグループ化して、稼働時間を合計すると、
稼働時間の結果が、0.1111111E-03という感じになり、
正しく集計されません。

 
日付/時刻型は名前通り、日付と時刻を格納するためのデータ型で、時間を格納するためのものではありません。24時間以内なら、時間と同じ表示になりますので、時間とみなして扱うことは可能ではあります。
 
日付/時刻型は内部的には倍精度浮動小数点数ですので、集計すると小数表示になる場合がありますが、その場合は、CDate関数て日付/時刻型に変換すればいいでしょう。
 
SELECT T.[使用PC], T.[アプリ名], CDate(Sum(T.稼働時間)) AS 稼働時間の合計
FROM T
GROUP BY T.[使用PC], T.[アプリ名]

 
ただし、24時間以上になる場合はつかえませんし、浮動小数点数ですので演算誤差もあります。
必要な精度の単位(分とか秒)で数値型のフィールドに格納して、表示するときに関数などで希望の書式に変換するという設計が望ましいです。

トピックに返信