SQLITE查询以获得所需的结果
表的格式如图1.1所示SQLITE查询以获得所需的结果,sqlite,Sqlite,表的格式如图1.1所示 M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F TKLK LONE 09:19:16 1 2 TKLK LONE 09:22:11 4 6 TKLK LONE 09:32:46 2 7 TKLK LONE 09:32:46 4 9 TKLK LONE
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
如果我运行SELECT strftime'%H:%M',end,'-9分钟'| |'-'| | strftime'%H:%M',end AS time_slot FROM end_times,它会给出正确的输出,如图-1.2所示
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
09:19 - 09:28
09:29 - 09:38
09:39 - 09:48
09:49 - 09:58
09:59 - 10:08
10:09 - 10:18
您能指导如何映射这两个表吗?假设CUSTOMER表中的记录应该用图1.2到图1.1汇总成人和成人的f列
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
ADULT ADULT_F TIME_SLOT
5 8 09:19 - 09:28
6 16 09:29 - 09:38
0 0 09:39 - 09:48
0 0 09:49 - 09:58
0 0 09:59 - 10:08
1 3 10:09 - 10:18
请给我一个解决方案,谢谢您的时间。首先,我们必须以便于比较的格式获取开始/结束时间,稍后我们可以将其合并:
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
SELECT strftime('%H:%M', end, '-9 minutes') AS slot_start,
strftime('%H:%M', end ) AS slot_end
FROM end_times
然后我们可以将其连接到CUSTOMER表,同时忽略秒数:
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
SELECT ADULT,
ADULT_F,
slot_start,
slot_end
FROM (SELECT strftime('%H:%M', end, '-9 minutes') AS slot_start,
strftime('%H:%M', end ) AS slot_end
FROM end_times)
LEFT JOIN CUSTOMER
ON substr(END_TIME_OF_SERVICE, 1, 5) BETWEEN slot_start AND slot_end
最后,我们按插槽分组以获得每个插槽的总和。我使用的不是求和,而是零表示空值:
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
首先,我们必须以便于比较的格式获得开始/结束时间,我们可以在以后将其合并:
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
SELECT strftime('%H:%M', end, '-9 minutes') AS slot_start,
strftime('%H:%M', end ) AS slot_end
FROM end_times
然后我们可以将其连接到CUSTOMER表,同时忽略秒数:
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
SELECT ADULT,
ADULT_F,
slot_start,
slot_end
FROM (SELECT strftime('%H:%M', end, '-9 minutes') AS slot_start,
strftime('%H:%M', end ) AS slot_end
FROM end_times)
LEFT JOIN CUSTOMER
ON substr(END_TIME_OF_SERVICE, 1, 5) BETWEEN slot_start AND slot_end
最后,我们按插槽分组以获得每个插槽的总和。我使用的不是求和,而是零表示空值:
M_CODE H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK LONE 09:19:16 1 2
TKLK LONE 09:22:11 4 6
TKLK LONE 09:32:46 2 7
TKLK LONE 09:32:46 4 9
TKLK LONE 10:09:36 1 3
非常好的CL,再次非常感谢您。我希望我没有打扰您。我尽了最大努力在30分钟的间隔内解决了同样的问题,但没有达到预期的效果。您能否提供帮助,以30分钟为间隔生成查询。请更改结束时间和strftime偏移量。如果您有问题,请以问题的形式提问。嗨,CL,谢谢您的时间,并将新创建的问题以提问的形式提问。请尽全力生成30分钟出色的CL,再次非常感谢您,希望我没有打扰您,我尽了最大努力以30分钟的间隔找出相同的问题,但未能获得预期的结果。您能否提供帮助,以30分钟为间隔生成查询。请更改结束时间和strftime偏移量。如果您有问题,请以问题的形式提问。嗨,CL,谢谢您的时间,并将新创建的问题以提问的形式提问。请在30分钟内完成生成所需的全部操作