【发布时间】:2013-08-08 09:44:44
【问题描述】:
TABLE1 包含每天按代理名称分组的代理第一次呼叫的时间和代理最后一次呼叫的时间。 p>
代理先呼叫后呼叫 2013 年 8 月 5 日 10:59 2013 年 8 月 5 日 19:50 2013 年 8 月 6 日 11:06 2013 年 8 月 6 日 19:50 B 2013 年 8 月 5 日 10:33 2013 年 8 月 5 日 10:35 C 2013 年 8 月 5 日 10:04 2013 年 8 月 5 日 9:56 C 2013 年 8 月 6 日 10:02 2013 年 8 月 6 日 9:47 D 2013 年 8 月 5 日 10:37 2013 年 8 月 5 日 18:47 D 2013 年 8 月 6 日 14:58 2013 年 8 月 6 日 18:19 D 2013 年 8 月 6 日 10:01 2013 年 8 月 6 日 9:59 2013 年 8 月 5 日 12:29 2013 年 8 月 5 日 18:51 2013 年 8 月 6 日 12:05 2013 年 8 月 6 日 18:48 女 2013 年 8 月 6 日 11:15 2013 年 8 月 6 日 19:49 G 2013 年 8 月 5 日 10:04 2013 年 8 月 5 日 10:09 G 2013 年 8 月 6 日 10:39 2013 年 8 月 6 日 9:54
TABLE2 由代理名称和该代理的每日登录和注销时间组成。
代理登录 注销 2013-08-05 11:02:52 2013-08-05 20:05:45 2013-08-06 11:00:30 2013-08-06 20:06:47 B 2013-08-05 08:59:07 2013-08-05 18:01:58 B 2013-08-06 09:11:43 2013-08-06 18:08:49 C 2013-08-05 08:58:21 2013-08-05 17:59:29 C 2013-08-06 08:59:13 2013-08-06 18:03:53 D 2013-08-05 10:37:55 2013-08-05 19:56:20 D 2013-08-06 10:37:04 2013-08-06 20:00:43 2013-08-06 09:20:50 2013-08-06 18:00:35 F 2013-08-05 10:58:06 2013-08-05 20:00:24 2013-08-06 10:49:19 2013-08-06 20:01:37 2013-08-06 11:00:17 2013-08-06 19:58:31 H 2013-08-05 09:00:38 2013-08-05 18:16:16 H 2013-08-06 08:56:38 2013-08-06 17:57:00我需要以这样一种方式加入这些表,以便每天获得 AGENT、FIRSTCALL、LASTCALL、LOGIN、LOGOUT。在上面的示例中,我只列出了两天的数据,但数据存在两年以上(>700 天)。
以前,我曾尝试通过“代理”连接这些表,但这会导致多条记录。出路是什么?
【问题讨论】:
-
在join条件中添加date_of_First_Call和Date_of_Login。
-
min和max在哪里适合?您似乎在每张桌子上每天每个代理都有一个条目,那么您会汇总什么?这些是存储为日期还是字符串?他们会一直按时排队吗? (例如,代理可以在 23:59 登录并在 00:01 接听他们的第一个电话,如果可以,应该如何处理?) -
我需要所有四列的最小最大值。日期是 varchar (和不同的格式),这就是为什么我无法在日期上使用连接。但是,如果这是唯一的方法,我将不得不自己更改格式。