您好以下是示例数据。
DateGroupID StartDate EndDate
1 2013-01-01 2013-01-07
2 2013-01-08 2013-01-14
3 2013-01-15 2013-01-21
.
.
.
15 2013-04-01 2013-04-07
EMPID GroupID JoinDate TerminationDate
1 A 2013-01-01 2013-03-24
2 B 2013-01-05 NULL
3 C 2013-01-05 NULL
4 A 2013-01-05 2013-03-20
5 B 2013-01-17 NULL
6 D 2013-02-01 NULL
7 A 2013-02-24 NULL
8 A 2013-02-28 NULL
9 B 2013-03-02 NULL
10 B 2013-03-12 NULL
11 C 2013-03-22 NULL
12 C 2013-03-22 NULL
13 D 2013-03-26 NULL
14 D 2013-03-29 NULL
15 A 2013-04-01 NULL
我正在尝试计算每天处于ACTIVE状态的员工,并根据我选择的DateGroupID按GroupID对其进行分组。
所以,例如, 如果我选择DateGroupID = 1(在我假设的WHERe子句中), 我想获得StartDate和EndDate之间每天的ACTIVE用户数。 所以我的输出应该像
GROUPID COUNT Date
A 1 2013-01-01 (1 EMP was added to this group on this day)
B 0 2013-01-01 (NO Emp for this group were active on this day)
C 0 2013-01-01 (NO Emp for this group were active on this day)
D 0 2013-01-01 (NO Emp for this group were active on this day)
A 1 2013-01-02 (NO Emp for this group were added but 1 is active from the past)
B 0 2013-01-02 (NO Emp for this group were active on this day)
C 0 2013-01-02 (NO Emp for this group were active on this day)
D 0 2013-01-02 (NO Emp for this group were active on this day)
A 1 2013-01-03 (NO Emp for this group were added but 1 is active from the past)
B 0 2013-01-03 (NO Emp for this group were active on this day)
C 0 2013-01-03 (NO Emp for this group were active on this day)
D 0 2013-01-03 (NO Emp for this group were active on this day)
A 1 2013-01-04 (NO Emp for this group were added but 1 is active from the past)
B 0 2013-01-04 (NO Emp for this group were active on this day)
C 0 2013-01-04 (NO Emp for this group were active on this day)
D 0 2013-01-04 (NO Emp for this group were active on this day)
A 2 2013-01-05 (1 more Emp was added to this group on this day)
B 1 2013-01-05 (1 EMP was added to this group on this day)
C 1 2013-01-05 (1 EMP was added to this group on this day)
D 0 2013-01-05 (NO Emp for this group were active on this day)
.
.
.
.
A 2 2013-01-17 (2 EMP active on this day for this group)
B 2 2013-01-17 (1 more Emp was added to this group on this day))
C 1 2013-01-17 (NO Emp for this group were added but 1 is active from the past)
D 0 2013-01-17 (NO Emp for this group were active on this day)
.
.
.
A 2 2013-03-24 (2 EMP were removed and added as for this day, 2 active EMP)
B 4 2013-03-24 (So far 4 active EMP for this group)
C 3 2013-03-24 (So Far 3 active EMP for this group)
D 2 2013-03-24 (So far 2 active EMP for this group)
或更好地观看
当我选择DateGoupID = 3
时GroupID 2013-01-15 2013-01-16 2013-01-17 2013-01-18 2013-01-19 2013-01-20 2013-01-21
A 2 2 2 2 2 2 2
B 1 1 2 2 2 2 2
C 1 1 1 1 1 1 1
D 0 0 0 0 0 0 0
答案 0 :(得分:0)
您需要DateGroup表吗?
如果不是:
Select GroupID, Count(EmpId), JoinDate
from dbo.[EmployeeStartDateTableName]
group by GroupID, JoinDate
如果是这样的话:
SELECT GroupID, Count(EmpId), JoinDate,
FROM dbo.[EmployeeStartDateTableName] INNER JOIN
dbo.[DateGroupTableName] ON [EmployeeStartDateTableName].JoinDate =
dbo.[DateGroupTableName].StartDate
Where groupID = [InsertGroupId]
group by GroupID, JoinDate
然后,如果您希望critera为DateGroupID