2015-11-20 68 views
0

这是一个SQL查询问题,而不是任何事情。我测试了以下内容:从两个时间表请求记录时为空记录集

SELECT Employees.Corps_ID, Employees.Last_Name, Employees.First_Name, Shifts.Start_Date_Time, Shifts.End_Date_Time, DateDiff('n',Shifts.Start_Date_Time,Shifts.End_Date_Time) AS SubTotalMinutes, Locations.Location_Name 
FROM (Locations INNER JOIN Shifts ON Locations.Location_ID = Shifts.Location) INNER JOIN (Employees INNER JOIN Employees_Shifts ON Employees.Employee_ID = Employees_Shifts.Employee_ID) ON Shifts.Shift_ID = Employees_Shifts.Shift_ID 
WHERE (((Shifts.Start_Date_Time) Between #2015/09/26# And #2015/10/04#) AND ((Shifts.Schedule_ID)=1 And (Shifts.Schedule_ID)=2)) 
ORDER BY Employees.Last_Name; 

该查询Access 2010中的调度应用程序的一部分,并且查询试图获得跨越上周在九月通10月份第一周的记录。这将被视为支付期限。每个附表涵盖一个月。因此,为了让所有的记录十月的第一部分,我需要包括行:AND(Shifts.Schedule_ID)= 2)

如果我删除了这一行的查询运行正常,并我得到了,至少是9月份上周的记录。但包括该行给我一个空的记录集。我不知道这是为什么。这两个时间表都有记录。附表1涵盖了全部9月份,附表2涵盖了整个10月份。请指教。

回答

2

尝试使用逻辑OR :)

((Shifts.Schedule_ID)= 1或(Shifts.Schedule_ID)= 2))

+0

就是这样。谢谢。 – Alan