在我的Access数据库中,我有三个表,' mission',#mission任务'和'设备'。每个任务都有一个开始时间和一个结束时间,并且可以拥有许多资产。每个资产条目都具有与任务表相关的missionID,与设备表中的条目相关的assetName,以及在该特定任务中使用的数量。
团:
missionID (PK) start end destination description
1 10/17/2015 6:00:00 AM 10/17/2015 5:00:00 PM
2 10/18/2015 6:00:00 AM 10/18/2015 5:00:00 PM
3 10/19/2015 6:00:00 AM 10/19/2015 5:00:00 PM
MissionAsset:
assetID (PK) missionID (FK) asset (FK) quantity description
1 1 M1088 2
2 1 10K 3
3 2 M1088 1
4 3 M1120 1
设备:
AssetName (PK) OnHand Inoperable
M1088 10 2
10K 8 1
M1120 4 0
我的表连接对于查询是正确的。我想做一些按时间段过滤的总和:例如,从现在起24小时后将使用每种资产的数量?我尝试过使用:
Sum(CASE WHEN mission.start <= (Now()+1) AND (Now()+1) <= mission.end THEN quantity ELSE 0 END)
无济于事;访问会导致语法错误(缺少运算符)&#39;。我引用SQL sum with condition来查找搜索到的CASE表达式(https://msdn.microsoft.com/en-us/library/ms181765.aspx)的文档。我还引用了Is it possible to specify condition in Count()?,其中使用了一个简单的CASE表达式。