![](/img/trans.png)
[英]MS Access SQL: Using SELECT INTO with a UNION ALL query
[英]MS Access Query SQL Union Select returns -1
我有一個帶有 SQL Union Select 的 MS Access 查詢,它在我的報告中返回 -1。 我假設 -1 是因為查詢返回 null 值,但我無法弄清楚如何使用 IFF() 語句停止在報告中顯示 -1。 這是 SQL 查詢:
SELECT [Employees].[Last Name] & ", " & [First Name] AS EmployeeName, Employees.[Active Employee], Employees.[Active Employee], Employees.[Active Employee]
FROM Employees
WHERE (((Employees.[Active Employee])=True))
ORDER BY [Employees].[Last Name] & ", " & [First Name];
UNION SELECT [Employees].[Last Name] & ", " & [First Name] AS EmployeeName, TypeOfAbsence.TypeOfAbsence, [Vacation Calendar].[Date Used], [Vacation Calendar].Time
FROM TypeOfAbsence INNER JOIN (Employees INNER JOIN [Vacation Calendar] ON Employees.ID = [Vacation Calendar].EmployeeID) ON TypeOfAbsence.ID = [Vacation Calendar].TypeID
WHERE ((([Vacation Calendar].[Date Used])<[Forms]![Week Ending Report Form]![End_Date] And ([Vacation Calendar].[Date Used])>[Forms]![Week Ending Report Form]![Start_Date]));
考慮使用 Null 作為 UNION 的字段占位符。 這將從重復的 [Active Employee] 字段中消除 -1 值。 刪除嵌入的分號,因為這將導致 UNION 失敗。 ORDER BY 子句可能沒用,因為排序應該由報表管理,如果設置了報表排序和分組,查詢順序肯定會被忽略。 第一個 SELECT 行定義字段數據類型和名稱。 不需要在后續的 SELECT 行中重復別名字段名稱。
SELECT [Last Name] & ", " & [First Name] AS EmployeeName, Null AS TOA, Null AS DU, Null AS TU
FROM Employees
WHERE (((Employees.[Active Employee])=True))
UNION SELECT [Last Name] & ", " & [First Name], TypeOfAbsence, [Date Used], [Time]
FROM TypeOfAbsence
INNER JOIN (Employees INNER JOIN [Vacation Calendar]
ON Employees.ID = [Vacation Calendar].EmployeeID)
ON TypeOfAbsence.ID = [Vacation Calendar].TypeID
WHERE ((([Vacation Calendar].[Date Used])<[Forms]![Week Ending Report Form]![End_Date] And ([Vacation Calendar].[Date Used])>[Forms]![Week Ending Report Form]![Start_Date]));
還要考慮這個過濾條件:
WHERE [Date Used] BETWEEN [Forms]![Week Ending Report Form]![Start_Date] AND [Forms]![Week Ending Report Form]![End_Date]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.