我需要創建一個報告,顯示出席每週的課程。我們使用電子入住系統,以便將每個人的信息與日期一起保存到數據庫中。在另一個查詢中查詢一列的結果
我可以輕鬆編寫一個查詢,獲取在給定日期簽入該班級的人員列表。從查詢的結果是這個樣子:
+-----------+------------+-----------+
| 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子句。 –