我需要创建一个报告,显示出席每周的课程。我们使用电子入住系统,以便将每个人的信息与日期一起保存到数据库中。在另一个查询中查询一列的结果
我可以轻松编写一个查询,获取在给定日期签入该班级的人员列表。从查询的结果是这个样子:
+-----------+------------+-----------+
| person id | first name | last name |
+-----------+------------+-----------+
| 1234 | john | smith |
| 1235 | jane | smith |
+-----------+------------+-----------+
但我需要的是说,特定的人有多少次参加12周的时间内,这个类的附加列。所以我想结果会是这个样子:
+-----------+------------+-----------+------------+
| person id | first name | last name | attendance |
+-----------+------------+-----------+------------+
| 1234 | john | smith | 3 |
| 1235 | jane | smith | 5 |
+-----------+------------+-----------+------------+
我也能得到正确的结果与一个COUNT
查询“出勤”一栏。此查询仅适用于在考勤表中指定人员ID的情况。
因此,我需要一个查询,它将从第一个查询中提取人员id,并计算出该人员在过去12周内参加过多少次并将其应用到列中。
附加信息: 它需要指出在包括上个星期日在内的12周时间内,该人参加过该课程的次数。
它始终是从当前日期12周
我想这是可能的,他们可能已经参加了每天两班,但所有的类都是在星期天,这是足够不太可能,我不需要对此的帐户
这是基于一个星期天,所以我想答案是从上周日起的12周。
这里是我的查询,返回谁在上周日检查的结果:
SELECT
pb.person_id, pb.nick_name, pb.last_name, COS.occurrence_name, COS.occurrence_description, COS.date_created, COS.occurrence_type, COS.occurrence_id, sm.role_luid
FROM core_v_occurrence_service COS
JOIN core_occurrence_attendance oa ON oa.occurrence_id = COS.occurrence_id
JOIN core_v_person_basic pb ON pb.person_id = oa.person_id
JOIN smgp_member sm ON sm.person_id = OA.person_id
WHERE oa.attended = 1
AND COS.occurrence_type = 140
AND COS.date_created BETWEEN (DATEADD(week,-1,GETDATE())) AND GETDATE()
AND sm.role_luid IN (24,25, 28)
AND sm.group_id = 3
而这里的,让我多少次有人参加了一个类的计数查询:
SELECT COUNT (oa.person_id)
FROM core_occurrence_attendance oa
JOIN core_v_occurrence_service COS on cos.occurrence_id = oa.occurrence_id
WHERE oa.person_id = 27276
AND oa.attended = 1
AND COS.occurrence_type = 140
AND COS.date_created BETWEEN (DATEADD(week,-12,GETDATE())) AND GETDATE()
基本上我需要的是一个查询,它将一个人的人员ID输入到考勤表中的次数。因为每次参加课程时都会将人员的个人ID输入该表格。
你应该从表格中发布一些示例数据,不仅仅是输出格式 –
几个问题可以帮助你找到一个好的答案:1)你希望那些在这个星期出席的人加上他们出席的次数在过去的十二周内,还是在过去十二个星期中曾经去过的人? 2)它总是'过去的十二周',还是'从_x_'开始的一段时间? 3)在这十二周内,人们是否可以参加不同的课程?如果是的话,你是否需要单独出席? 4)是“距今天十二周”还是“上周日十二周”?编辑原始问题的答案。 – AHiggins
请谷歌和了解SQL中的GROUP BY子句。 –