当前位置: 首页 > 面试题库 >

MS Access:汇总时间大于24小时的查询再次从1重新开始

暨弘毅
2023-03-14
问题内容

我在MS Access程序中有一个表trans_hist,其中时间以短日期格式“ HH:MM”存储,例如:

[![图片] [1]] [1]

现在,我创建了一个查询,该查询告诉每个用户的总时间(只需简单地将时间相加),但是如果总时间超过24小时,它将重置并从00:15重新开始(所有时间均以15分钟为间隔存储)

问题:对于Customer(UID)1,总时间应该是32:30,但是显示为8:30

当前结果:

UID Time_Elapsed
1   5:00
1   8:30
1   9:00
1   6:00
2   2:15
2   2:00
3   1:15
5   4:00
1   4:00

结果:

[![图片] [2]] [2]

  • 数据

Cust_UID Trans_Date Agen_Name Prog_Name Prime_Serv Prime_Serv_Time 10014
15年12月13日LAC RA BMC 01:00 10021 15年12月14日LAC RA AP 01:00 10022 15-Dec-15 LAC
RA AP 01:00 10021 16-Dec-15 LAC RA SM 00:45 10020 15-Dec 15 LAC RA AP 01:00
10027 15-Dec 15 LAC RA DA 00:15 10028 18-Dec-15 LAC RA DA 00:15 10026
18-Dec-15 LAC RA DA 00 :15 10029 15-Dec-15 LAC RA DA 00:15 10030 18-Dec-15 LAC
RA DA 00:15 10031 18-Dec-15 LAC RA DA 00:15 10023 19-Dec-15 LAC RA Clinical
02:00 10023 20-Dec-15 LAC RA临床01:30 10023 20-Dec-15 LAC RA临床02:00 10020
15-Dec-15 LAC RA SM 00:15 10023 21-Dec-15 LAC RA SM 00:30 10022 22 –15年12月LAC
RA临床00:30 10022 15年12月22日LAC RA IB 00:30 10021 15年12月22日LAC RA IB 00:30 10009
15-Dec 15 LAC RA IB 00:30 10019 23-Dec-15 LAC RA STM 00:45 10009 15-Dec 15 LAC
RA Staff-In 00:30 10021 23-Dec 15 LAC RA Staff-In 00:30 10022 15年12月23日LAC
RA职员-在00:30 10024 23-Dec-15 LAC RA职员-00:30 10033 23-Dec 15 LAC RA职员-00:30
10025 23-Dec- 15 LAC RA临床00:45 10035 2015年12月28日LAC OA CA 05:00 10040
2015年12月28日LAC OA CA 05:00 10039 2015年12月28日LAC OA CA 05:00 10038 LAC 12月15 OA
CA 05:00 10042 15-Dec-15 LAC OA CA 05:00 10036 28-Dec-15 LAC OA CA 05:00 10037
28-Dec-15 LAC OA CA 05:00 10006 30-Dec-15 LAC Test 1 DA 01:45 10005 15-Dec-15
LAC测试2 DG 01:45 10015 30-Dec-15 LAC Test 2 IB 02:15 10015 30-Dec-15 LAC Test 4
DG 03:15 10019 30-Dec-15 LAC OA CA 15:30 10005 15年12月31日LAC OA CA 12:00

[数据] [3]

结果

Prog_Name Prime_Serv Total_Serv_Time OA CA 62:30 RA AP 3:0 RA BMC 1:0 RA临床7:45
RA DA 2:30 RA IB 2:30 RA人员-In 2:30 RA SM 2:30 RA STM 1:45测试1 DA 2:45测试2 DG
2:45测试2 IB 2:15测试4 DG 3:15

[结果] [4]


问题答案:

我希望此SQL查询有帮助:

SELECT T.UID,
       CSTR(total_hours 
                + INT(total_min / 60)) 
                + ":" 
                + CSTR(total_min Mod 60) as result
FROM
    (SELECT UID,
            SUM(HOUR(TH.time_elapsed)) AS total_hours,
            SUM(MINUTE(TH.time_elapsed)) AS total_min
    FROM trans_hist AS TH
    GROUP BY UID) AS T


 类似资料:
  • 问题内容: 我正在尝试为超过5个小时的旧窗口小部件编写Django查询,但我有点迷失了。窗口小部件模型具有一个用窗口小部件的创建时间填充的。 问题答案: 如果是模型的名称,并且具有名为的DateTimeField属性,则查询为: 请注意,这意味着“创建的内容少于”。

  • 问题内容: 我如何格式化大于24小时的timedelta以在Python中仅包含小时显示? 我通过以下方式达到目标: 有没有更好的办法? 问题答案: 可能定义继承的类会更加优雅

  • 我正在使用TextView设置日期和时间与日期名称,但时间显示在24小时,我想设置在12小时格式。

  • 我有这样的桌子 数据如下所示,开始时间和结束时间是连续的时间跨度: 因此,如果用户传递两个参数,则可以在任意时间段内选择* 它应该以如下方式返回表: 你看,棘手的部分是将原始的时间跨度削减到用户定义的时间跨度(@from-@To),我已经为此奋斗了一整天。请指教。 提前非常感谢你!!!

  • 问题内容: 当前返回: ‘25:59:59’ 我希望它返回: ‘01:59:59’ 我知道一个简单的问题,但我不知道如何告诉MySQL这样做而不是25小时后返回。有任何想法吗? 问题答案: 不知道这是否是最好的解决方案,但似乎可行:

  • 当我在javascript中使用“getHour()”方法时,它会显示军事时间格式。我需要它以1-12之间的数字显示小时。有人能告诉我怎么做吗?以下是我使用的代码: