【发布时间】:2023-02-03 23:06:46
【问题描述】:
我希望这是一个简单的解决方法,我有 2 个表,其中一个是 6 个月内的几天,另一个是站点名称、日期(日期)和当天的出席人数。
我想创建一个表,其中对于每个站点,它在 6 个月期间的每一天都有一行,并采用与当天对应的站点计数,但我也希望它显示哪里有 NULL(没有那天出勤)-我可以在只有出勤天数的情况下做到这一点,但反之则不行。 :(
此处的示例数据:注意,数据保存在两个临时表中
日期表#Data
CallDate rn
2022-08-01 1
2022-08-02 2
2022-08-03 3
2022-08-04 4
2022-08-05 5
2022-08-06 6
2022-08-07 7
2022-08-08 8
考勤表:#SiteData
SiteName CallDate Count
Bassetlaw 2022-08-30 1
Bassetlaw 2022-08-31 1
Bassetlaw 2022-09-13 3
Bassetlaw 2022-09-15 5
Bassetlaw 2022-09-23 1
Bassetlaw 2022-09-27 1
Bassetlaw 2022-11-21 1
Bassetlaw 2022-11-23 1
Bassetlaw 2022-11-26 1
Bassetlaw 2022-11-28 1
所以在这种情况下,我会有 6 个月的行,但只有 10 天的数据。其他日子我需要 NULL,而不仅仅是 8 行。
注意:还有更多站点,我希望对所有站点重复此操作。本质上,我想要一个表格,其中包含所有站点,每天每个站点一行,持续 6 个月,无论他们是否出席。
【问题讨论】:
-
你使用什么数据库管理系统?此外,这在您的数据层中可能会容易得多,而不是在数据库本身中进行
-
这听起来超级简单,应该使用 LEFT JOIN 命令来完成。还有一个问题:SiteData 表看起来每个日期只有一个条目。它是否正确?