在我的查询中,我OUTER APPLY
用于在不同的情况下获取员工人数,例如
- 一段时间内每天加入的员工人数
- 期间每天离职员工人数
- 一段时间内每天离职的员工人数......等
预期输出 ( From:2017-01-10 to 2017-01-12
) 是
CDATE TOTAL_COUNT JOIN_COUNT RESIGNED _COUNT ...
2017-01-10 1204 10 2
2017-01-11 1212 5 1
2017-01-12 1216 3 0
以下是我的查询
DECLARE @P_FROM_DATE DATE = '2017-01-01', --From 1st Jan
@P_TO_DATE DATE = '2017-01-10' --to 10th jan
;WITH CTE_DATE
AS
(
SELECT @P_FROM_DATE AS CDATE
UNION ALL
SELECT DATEADD(DAY,1,CDATE)
FROM CTE_DATE
WHERE DATEADD(DAY,1,CDATE) <= @P_TO_DATE
)
SELECT [CDATE]
,[TOTAL_COUNT]
,[JOIN_COUNT]
FROM CTE_DATE
OUTER APPLY (
SELECT COUNT(CASE WHEN [EMP_DOJ] = [CDATE] THEN 1 ELSE NULL END) AS [JOIN_COUNT]
,COUNT(*) AS [TOTAL_COUNT]
,....
,...
FROM [EMPLOYEE_TABLE]
) AS D
但是在执行我的查询时,出现以下错误。
消息 8124,级别 16,状态 1,第 18 行在包含外部引用的聚合表达式中指定了多个列。如果要聚合的表达式包含外部引用,则该外部引用必须是表达式中引用的唯一列。
这里的列[JOIN_COUNT]
只产生错误,没有这个列,查询正在工作。但我有更多列待添加[JOIN_COUNT]
(例如 Resigned_Count,...等)