有两个表,J表和L表,J表中包含id(varchar 50),startTime(datetime)和endTime(datetime),L表中包含id(varchar 50)和time(datetime),两个表中的id是对应的,现在想统计出以id为单位,L表中的time时间包含在startTime和endTime的次数,即最终结果显示id和次数两个字段,非常感谢!
------解决思路----------------------
SELECT J.id,COUNT(L.id)[次数]
FROM J LEFT JOIN L ON J.id=L.id
AND J.startTime<=L.time AND J.endTime>=L.time
GROUP BY J.id
------解决思路----------------------
select L.id,sum(case when l.time between J.startTime and endTime then 1 else 0 end) as 次数
from J,L where J.id=L.id group by L.id
------解决思路----------------------
select
L.id,
sum(case when l.time>J.startTime and l.time<endTime then 1 else 0 end) as 次数
from J,L where J.id=L.id
group by L.id