基于常规 table 和来自另一个临时 table 的几列创建临时 table 并循环数据

Creating a temp table based on a regular table and a few columns from another temp table and looping the data

我有一个名为 #tmpFrames 的临时文件 table,其输出如下:

Frameid Start_Day End_Day
1 2021-09-01 18:00:00.000 2021-09-02 06:00:00.000
2 2021-09-02 18:00:00.000 2021-09-03 06:00:00.000
3 2021-09-03 18:00:00.000 2021-09-04 06:00:00.000
4 2021-09-04 18:00:00.000 2021-09-05 06:00:00.000
5 2021-09-05 18:00:00.000 2021-09-06 06:00:00.000
6 2021-09-06 18:00:00.000 2021-09-07 06:00:00.000
7 2021-09-07 18:00:00.000 2021-09-08 06:00:00.000
8 2021-09-08 18:00:00.000 2021-09-09 06:00:00.000
9 2021-09-09 18:00:00.000 2021-09-10 06:00:00.000

此外,还有一个名为 Audit 的 table,如下所示:

ID Record AccessedDTTM
16 Sign In 2021-09-02 18:31:33.798
16 Charge 2021-09-02 21:41:33.770
16 Session End - Sign Out 2021-09-02 04:42:33.770
16 Sign In 2021-09-07 19:41:33.770
16 Session End - Sign Out 2021-09-07 04:42:33.770
17 Sign In 2021-09-01 00:03:04.070
17 Session End - Sign Out 2021-09-01 00:33:52.717
18 Sign In 2021-09-06 01:31:00.527
18 Schedule 2021-09-06 01:31:31.407
18 Charge 2021-09-06 01:43:27.427
18 Session End - Sign Out 2021-09-06 01:47:27.940

我需要创建另一个临时文件 table,它将根据临时文件中提到的每个 start_day 和 end_day 时间范围从审计 table 中检索数据table 并添加 start_day 和 end_day 列。例如:

我希望获得审计 table 中所有数据的如下数据,并合并来自临时 Table 的数据以及每个时间范围的数据:

ID AccessedDTTM Start_day End_Day FrameId
16 2021-09-02 18:31:33.798 2021-09-02 18:00:00.000 2021-09-03 06:00:00.000 2
16 2021-09-02 21:41:33.770 2021-09-02 18:00:00.000 2021-09-03 06:00:00.000 2
16 2021-09-02 04:42:33.770 2021-09-02 18:00:00.000 2021-09-03 06:00:00.000 2

有什么实现方法的建议吗?非常感谢您的帮助。提前致谢!

我讨厌这种加入方式,但它会完成工作。

SELECT 
    tf.ID
    , tf.AccessedDTTM
    , a.Start_Day
    , a.End_Day
FROM 
    [Audit] a
    INNER JOIN #tmpFrames tf ON a.AccessedDTTM>=tf.Start_Day
        AND a.AccessedDTTM<=tf.End_Day