Sql server SQL-使用日期范围临时表和具有开始/结束合同日期的客户列表(第二个临时表)执行计数语句

Sql server SQL-使用日期范围临时表和具有开始/结束合同日期的客户列表(第二个临时表)执行计数语句,sql-server,tsql,Sql Server,Tsql,-我目前正在尝试使用来自两个临时表的信息执行计数功能。一个表仅列出了2018年1月1日至2018年12月31日的日期临时表1,另一个表列出了客户信息,约100名客户临时表2,包括合同开始和结束日期。这两个表不能合并。我的目标是对临时表1中的每个日期进行计数,例如:如果临时表1的日期是2018年1月1日,我想计算当天有多少合同处于活动状态,如果客户合同的开始日期是2017年5月12日,结束日期是2021年12月31日,我希望对该客户进行计数,依此类推。如果客户合同日期截止于2017年12月31日,

-我目前正在尝试使用来自两个临时表的信息执行计数功能。一个表仅列出了2018年1月1日至2018年12月31日的日期临时表1,另一个表列出了客户信息,约100名客户临时表2,包括合同开始和结束日期。这两个表不能合并。我的目标是对临时表1中的每个日期进行计数,例如:如果临时表1的日期是2018年1月1日,我想计算当天有多少合同处于活动状态,如果客户合同的开始日期是2017年5月12日,结束日期是2021年12月31日,我希望对该客户进行计数,依此类推。如果客户合同日期截止于2017年12月31日,我不希望该客户计入2018年1月1日,如果客户开始日期为2018年1月2日,我不希望该客户计入1/1,仅计入1/2和1/2。我希望这是足够的信息。谢谢

假设您有如下表结构:

表customers:包含“开始日期”和“结束日期”列,它们表示合同的开始日期和结束日期。 表日期:有一个名为my_date的列 并且还假设上述所有列都是DATE数据类型或等效数据类型 然后,您希望将两个表连接起来,如下所示:

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

从选项卡2中选择mydate,Count*作为activecount

其中mydate>从选项卡2中选择startdate


当涉及到堆栈溢出上的SQL问题时,一张图片胜过千言万语。也就是说,如果您能向我们展示输入和输出数据的示例表,这将对您的问题大有帮助。请向我们展示您的尝试。为什么这两个表不能连接起来呢。