-我目前正在尝试使用来自两个临时表的信息执行计数功能。一个表仅列出日期为2018年1月1日至2018年12月31日(临时表1),而另一个表则包含大约100个客户的客户信息(临时表2),包括合同的开始和结束日期。这两个表不能连接。我的目标是对临时表1中的每个日期进行计数,例如:如果临时表1的日期为1/1/2018,那么我想计算当客户合同开始时当天有多少个合同处于活动状态日期是12/5/2017,结束日期12/31/2021我希望该客户被计算在内,依此类推。如果客户合同日期于2017年12月31日结束,我不希望该客户被计为1/1/2018,如果客户开始日期为1/2/2018,我不希望将该客户计为1 / 1,只有1/2及以上。我希望这是足够的信息。谢谢
答案 0 :(得分:0)
假设您具有如下表结构:
customers
:具有列start_date
和end_date
的列,它们代表合同的开始和结束日期。dates
:有一个名为my_date
的列DATE
或等效数据)然后,您要JOIN
这两个表:
SELECT
d.my_date,
COUNT(*) -- number of active contracts at that date
FROM customers c
INNER JOIN dates d ON d.my_date BETWEEN c.start_date AND c.end_date
GROUP BY d.my_date
答案 1 :(得分:0)
从tab2中选择mydate,Count(*)作为活动计数
其中mydate>(从tab2中选择开始日期)
和mydate <(从tab2中选择结束日期)
按mydate分组