SQL Join语句基于日期范围

时间:2013-08-23 17:25:36

标签: sql sql-server-2008 join

这里有新的SQL开发。我正在为我们的Asterisk服务器编写一个呼叫日志应用程序。在一个表(CDRLogs)中,我有来自电话系统的呼叫记录(src,dst,calldate,duration)。在另一个表中我有(Employees)我有empName,empExt,extStartDate extEndDate)。我想根据在调用日期使用特定ext的人在src和empExt上加入两者。在给定时间范围内每个分机一个用户。

例如,我们在7月份有3位不同的用户坐在x100。在Employees表中,我记录了这些人开始的日期并结束了他们对该分机的使用。如何让联接反映出来?

提前致谢

1 个答案:

答案 0 :(得分:0)

也许是这样的:

SELECT A.*, B.*
FROM CDRLOGS A
INNER JOIN Employees B
  ON A.SRC = B.EmpExt
  AND A.CallDate between B.extStartDate and coalesce(B.extEndDate,getdate())

请用所需的相关字段替换* 并且可能有一种更好的方式,因为它之间的连接似乎可能会导致一些开销,但我现在想不出更好的方法。