我正在努力收集一段时间内按地点划分的员工的平均调查分数.由于各种原因,这些人可以随着时间的推移转移位置.我有两张桌子.
Survey_Scores
:这张表存放的是个人调查分数.它包含300万行.
示例:
Survey_Date | Employee_Number | Score (1-4) |
---|---|---|
1/2/2023 | 1 | 3 |
1/5/2023 | 2 | 4 |
Employee_Info
:这张表存放有关员工的信息.此信息可能会随着时间的推移而变化,并且此表中一个人的多行记录将保留此历史记录.它们的行可以通过记录开始日期和记录结束日期列来区分.当记录结束日期为空时,这是他们的最新信息.
显示两名员工在1月4日调换地点的样本:
Employee_Number | Location | Record_Start_Date | Record_End_Date |
---|---|---|---|
1 | SLC | 1/1/2023 | 1/3/2023 |
2 | TEX | 1/1/2023 | 1/3/2023 |
1 | TEX | 1/4/2023 | (null) |
2 | SLC | 1/4/2023 | (null) |
PROBLEM:我需要创建一个从Survey_Scores
表开始的视图,但添加了一列,表示员工在Survey_Date
之前所属的位置.
我try 连接employee_Number
列上的表,但由于这里的多对多关系,在Snowflake中遇到了错误.我理解它为什么不工作,因为它不知道要查看哪一行,所以我想知道是否有什么解决方法可以让它返回那个人在survey_date
上的位置.
除了我已经做过的以外,我最初的 idea 是以某种方式在一个if语句中工作,该语句说:如果survey_date
介于record_start_date
和record_end_date
之间,则返回位置.但我不太确定如何继续实施这一点.
我仍然是SQL的新手,感谢您的帮助,谢谢.