好的,我正在进行的一个项目(在 MS ACCESS 中)是计算客户为汽车公司购买的每个额外“选项”的数量。为此,我创建了以下查询以将每个选项放入一列,然后将下一列中每个选项的总数相加(为便于阅读和匿名而编辑)。
SELECT a.options, Count(*)
FROM(
SELECT TBL.Des1 AS options FROM TBL UNION ALL
SELECT TBL.Des2 AS options FROM TBL UNION ALL
SELECT TBL.Des3 AS options FROM TBL UNION ALL
SELECT TBL.Des4 AS options FROM TBL UNION ALL
SELECT TBL.Des5 AS options FROM TBL UNION ALL
SELECT TBL.Des6 AS options FROM TBL UNION ALL
SELECT TBL.Des7 AS options FROM TBL UNION ALL
SELECT TBL.Des8 AS options FROM TBL UNION ALL
SELECT TBL.Des9 AS options FROM TBL UNION ALL
SELECT TBL.Des10 AS options FROM TBL UNION ALL
SELECT TBL.Des11 AS options FROM TBL UNION ALL
SELECT TBL.Des12 AS options FROM TBL UNION ALL
SELECT TBL.Des13 AS options FROM TBL) AS a
INTO TBL_OPTION_ALL
GROUP BY a.options;
我的问题是尝试运行时出现错误“FROM 子句中的语法错误”。错误提示终止后,底部的 INTO 语句将突出显示。最初,我用括号分隔每个 SELECT,但后来我收到“来自 JOIN 子句的语法错误”的错误,并找到了一个类似的帖子,该问题通过删除括号来解决。我最初也只是(...)a
创建别名,但我已经把它变成(...) AS a
了这个,因为我不确定创建别名的方法是否适用于 Access。
我有一些关于我的问题所在的理论(从最可能到最不可能排序)
- 当我应该使用 [] 时,我正在使用 (),或者
- 我在一些 UNION 调用中缺少括号,或者
- 我需要以完全不同的方式组织括号,并像以前尝试过的那样分解 UNION。
- 它无法处理这么多的 UNION。如果是这种情况,我该如何构建它?我必须建立多个查询吗?