Ms access 如果数据出现在其他列中,则访问计数
我试图统计连续两天加班的员工人数 我有一张像这样的桌子Ms access 如果数据出现在其他列中,则访问计数,ms-access,Ms Access,我试图统计连续两天加班的员工人数 我有一张像这样的桌子 EmpID Date Hour A 2017/1/6 2 A 2017/1/9 2 A 2017/1/10 3 B 2017/1/5 1 B 2017/1/11 2 C 2017/1/10 3 C 2017/1/11 1 我可以使用DateAdd函数找出员工加
EmpID Date Hour
A 2017/1/6 2
A 2017/1/9 2
A 2017/1/10 3
B 2017/1/5 1
B 2017/1/11 2
C 2017/1/10 3
C 2017/1/11 1
我可以使用DateAdd函数找出员工加班的第二天[日期]
EmpID Date Hour NextDay
A 2017/1/6 2 2017/1/7
A 2017/1/9 2 2017/1/10
A 2017/1/10 3 2017/1/11
B 2017/1/5 1 2017/1/6
B 2017/1/11 2 2017/1/12
C 2017/1/10 3 2017/1/11
C 2017/1/11 1 2017/1/12
然而,现在,我被困在这之后。
在Excel中,我可以使用countif检查表中是否为每个员工显示了等于[NextDay]的[Date]。如下表所示
EmpID Date Hour NextDay OTNextDay
A 2017/1/6 2 2017/1/7 0
A 2017/1/9 2 2017/1/10 1
A 2017/1/10 3 2017/1/11 0
B 2017/1/5 1 2017/1/6 0
B 2017/1/11 2 2017/1/12 0
C 2017/1/10 3 2017/1/11 1
C 2017/1/11 1 2017/1/12 0
我能在Access中做类似的事情吗?
这是我的第一个问题。我希望这足够清楚。我能看到的唯一简单的方法是使用域聚合函数。使用第二个数据集示例: 选择EmpID、[日期]、小时、下一天、, DCount*,QueryName,EmpID='&[EmpID]&'和[Date]=&[NextDay]&作为OTNextDate 来自QueryName
日期和小时是保留字,不应使用保留字作为任何名称。您可以使用一个简单的子查询:
SELECT
YourTable.EmpID,
YourTable.[Date],
DateAdd("d", 1, YourTable.[Date]) As
NextDay,
(Select
Count(*)
From
YourTable As T
Where
T.EmpID = YourTable.EmpID
And
T.[Date] = DateAdd("d", 1, YourTable.[Date])) AS
OTNextDay
FROM
YourTable;