请帮助
我有5个临时表,即#TEMPTABLE,#TotEmp,#TopEnrol,#NotEnrol和#PercEnrol。
TEMPTABLE包含以下内容:
Staff Number | Employee_Name | Home_Branch | Enrolledd | Card | Tested
(已注册 - 员工是否注册的指标 - 1/0)
TotEmp包含以下内容(分支机构中的员工总数)
Home_Branch | Employee
TotEnrol包含以下内容(分支机构中登记的员工总数)
Home_Branch | Enrolled
NotEnrol包含以下内容(未在分支机构注册的员工总数)
Home_Branch | Not_Enrolled
PercEnrol包含以下内容(分支机构中登记员工的百分比)
Home Branch | Percentage
我想做一个显示以下内容的选择 - 并且注册的百分比必须只有90%以下的分支,结果必须按分支分组。
Home_Branch | Enrolled (from TotEnrol) | Employee (TotEmployee) | Not Enrolled (NotEnrol)| Percentage (PercEnrol)
我想从我需要的所有表中选择*并将其放入决赛桌,但显然这个重复的Home_Branch不断弹出,我不知道如何将它们加在一起。
答案 0 :(得分:0)
如果我理解你的问题,我相信这对你有用:
SELECT T1.Home_Branch,
T3.Enrolled,
T2.Employee,
T4.NotEnrolled,
T5.Percentage
FROM #TEMPTABLE T1
INNER JOIN #TotEmp T2 ON T1.Home_Branch = T2.Home_Branch
INNER JOIN #TotEnrol T3 ON T1.Home_Branch = T3.Home_Branch
INNER JOIN #NotEnrol T4 ON T1.Home_Branch = T4.Home_Branch
INNER JOIN #PercEnrol T5 ON T1.Home_Branch = T5.Home_Branch
WHERE T5.Percentage < 90
我在表上使用了别名,因此您可以指定要从中选择的列来自哪个表,这将消除您提到的Home_Branch
的5个副本。表别名可以比T1, T2, T3 etc
更好地命名,但是你的临时表的名称已经非常短了!
您还提到百分比小于90%,因此WHERE
条款。
作为旁注,您可能不需要设置所有这些临时表(除非您被明确告知要这样做),具体取决于您的源数据,您可以使用{{{ 1}},子查询或几个GROUP BY
。
这会回答你的问题吗?