在 SQL 中匹配时间
Matching up times in SQL
我有一个包含座席呼叫 activity 的数据库,我正在寻找座席让自己忙碌超过三分钟然后在一分钟内休息的实例。我的结果需要显示 Break 行和 Busy 行。
我已经走到这一步了,但我的脑袋已经转弯了 - 如果有任何帮助,我将不胜感激!!
SELECT *
FROM
DBO.AgentActivityReport Ar1
Inner join dbo.AgentActivityReport Ar2
on Ar1.[User_ID] = Ar2.[User_ID]
WHERE
(
Ar1.[ACTIVITY] = 'Busy'
AND
Ar1.[DURATION] > '00:03:00.0000000'
)
OR
(
Ar1.[ACTIVITY] LIKE 'Break (Tea Break)'
AND
Ar1.[DURATION] > '00:10:00.0000000'
)
OR
(
Ar1.[ACTIVITY] LIKE 'Break (Lunch Break)'
AND
Ar1.[DURATION] > '00:30:00.0000000'
)
AND Ar1.Activity in (select Ar2.Activity from dbo.AgentActivityReport Ar2 where Ar2.Activity in ('Break (Tea Break)','Break (Lunch Break)'))
嗯。 . .我认为这符合您的要求:
SELECT *
FROM DBO.AgentActivityReport Ar1 JOIN
dbo.AgentActivityReport Ar2
ON Ar1.[User_ID] = Ar2.[User_ID]
WHERE (Ar1.[ACTIVITY] IN ('Busy')
Ar1.[DURATION] > '00:03:00.0000000'
) AND
(Ar1.[ACTIVITY] IN ('Break (Tea Break)', 'Break (Lunch Break)') AND
DATEDIFF(SECOND, AR1.FINISH, AR2.START) < 60
);
你的问题没有说明 "break" 的持续时间,只说明中间的时间。
我有一个包含座席呼叫 activity 的数据库,我正在寻找座席让自己忙碌超过三分钟然后在一分钟内休息的实例。我的结果需要显示 Break 行和 Busy 行。
我已经走到这一步了,但我的脑袋已经转弯了 - 如果有任何帮助,我将不胜感激!!
SELECT *
FROM
DBO.AgentActivityReport Ar1
Inner join dbo.AgentActivityReport Ar2
on Ar1.[User_ID] = Ar2.[User_ID]
WHERE
(
Ar1.[ACTIVITY] = 'Busy'
AND
Ar1.[DURATION] > '00:03:00.0000000'
)
OR
(
Ar1.[ACTIVITY] LIKE 'Break (Tea Break)'
AND
Ar1.[DURATION] > '00:10:00.0000000'
)
OR
(
Ar1.[ACTIVITY] LIKE 'Break (Lunch Break)'
AND
Ar1.[DURATION] > '00:30:00.0000000'
)
AND Ar1.Activity in (select Ar2.Activity from dbo.AgentActivityReport Ar2 where Ar2.Activity in ('Break (Tea Break)','Break (Lunch Break)'))
嗯。 . .我认为这符合您的要求:
SELECT *
FROM DBO.AgentActivityReport Ar1 JOIN
dbo.AgentActivityReport Ar2
ON Ar1.[User_ID] = Ar2.[User_ID]
WHERE (Ar1.[ACTIVITY] IN ('Busy')
Ar1.[DURATION] > '00:03:00.0000000'
) AND
(Ar1.[ACTIVITY] IN ('Break (Tea Break)', 'Break (Lunch Break)') AND
DATEDIFF(SECOND, AR1.FINISH, AR2.START) < 60
);
你的问题没有说明 "break" 的持续时间,只说明中间的时间。