MS Access:SQL Query" Union All"

时间:2015-10-20 12:23:52

标签: sql ms-access ms-access-2010 ms-access-2007

我有以下问题,我有一个表格,我创建了一个用于过滤的组合框。我的行源SQL查询如下所示:

SELECT Employee_ComboBox.LastName,Employee_ComboBox.FirstName, Employee_ComboBox.ID,Employee_ComboBox.OperatingEntity,Employee_ComboBox.OrganisationNameFull
FROM Employee_ComboBox
ORDER BY Employee_ComboBox.[ID];

我想添加UNION SELECT "(All)" FROM以便我在我的组合框中获得(全部)。问题是我不知道如何在SQL查询中添加多个列。我试过像:

SELECT Employee_ComboBox.LastName FROM Employee_ComboBox UNION SELECT "(All)" FROM Employee_ComboBox; 这是Works,但是当我尝试添加其他列时,我做错了。例如:

SELECT Employee_ComboBox.LastName,Employee_ComboBox.FirstName FROM Employee_ComboBox UNION SELECT "(All)" FROM Employee_ComboBox;

关于如何在我的Combobox中添加所有列和(全部)值的任何想法?

BR,

2 个答案:

答案 0 :(得分:1)

这可能有用。在两个连接候选者中,列的数量不应相等

SELECT Employee_ComboBox.LastName, Employee_ComboBox.FirstName
    FROM Employee_ComboBox
    UNION ALL
    SELECT "(All)" as LastName,"" as FirstName FROM Employee_ComboBox;  

答案 1 :(得分:0)

您需要为它们添加值,以便UNION的子查询具有相同的列数。 NULL通常是合理的价值:

SELECT Employee_ComboBox.LastName, Employee_ComboBox.FirstName
FROM Employee_ComboBox
UNION ALL
SELECT "(All)", NULL FROM Employee_ComboBox;

您可能希望使用空字符串。另外,请使用UNION ALL代替UNIONUNION会产生删除重复项的开销,在这种情况下这是不必要的。