【问题标题】:multiple unions ms access多个联合 ms 访问
【发布时间】:2017-08-17 00:17:48
【问题描述】:

我一直在网上寻找单个表上多个联合的示例,我发现与我遇到的问题类似的唯一解决方案是 thread

这是我在 MS ACCESS 中内置的查询

  SELECT chat_tb.tag_1 AS [tag_desc], Count(chat_tb.tag_1) AS [Count_of_tag] FROM chat_tb GROUP BY chat_tb.tag_1
UNION
SELECT chat_tb.tag_2 AS [tag_desc], Count(chat_tb.tag_2) AS [Count_of_tag]  FROM chat_tb GROUP BY chat_tb.tag_2
UNION 
SELECT chat_tb.tag_3 AS [tag_desc], Count(chat_tb.tag_3) AS [Count_of_tag]  FROM chat_tb GROUP BY chat_tb.tag_3;

但我收到以下错误,我假设因为它链接到 MySQL 表我无法按照当前语法执行联合,谁能帮助我将其更改为 mysql 格式,提前谢谢你!

注意:如果我删除最后一个联合,则该语句有效。

View Error Message

ODBC--调用失败。 {MySQL]{ODBC 3.51 Driver]您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行 (#1064 )

我发现了另一个thread 类似的问题。

并做了以下事情:

 SELECT chat_tb.tag_1 AS [tag_desc], Count(chat_tb.tag_1) AS [Count_of_tag] FROM chat_tb GROUP BY chat_tb.tag_1;
UNION ALL (

SELECT chat_tb.tag_2 AS [tag_desc], Count(chat_tb.tag_2) AS [Count_of_tag]  FROM chat_tb GROUP BY chat_tb.tag_2;

UNION ALL

SELECT chat_tb.tag_3 AS [tag_desc], Count(chat_tb.tag_3) AS [Count_of_tag]  FROM chat_tb GROUP BY chat_tb.tag_3
)); 

这给了我一个“联合查询中的语法错误”

【问题讨论】:

  • 去掉前两个分号(即两个并集语句之前的分号)
  • 也不需要为每个查询提供别名字段名称,因为查询只会使用第一个查询中的名称 - 因此可以从后两个查询中删除 AS [tag_desc] 等。
  • @JonathanWillcock 不幸的是,这并没有改变任何东西,我认为我需要 MySql SQL 语句,因为 MS Access 是链接到 MySQl 表。
  • 您可能希望将数据库重新设计为 - 您的字段 tag_1tag_2tag_3 看起来它们包含相同类型的信息。如果tag_1 持有值,tag_2tag_3 是否为空?如果是这样,您可以只使用 tag 来保存文本以区分三个标签。然后,您可以只计算标签并按它们分组以获得您想要的结果。
  • 您能否使用不起作用的新查询编辑您的帖子并发布错误(如果现在不同了)?

标签: sql ms-access union


【解决方案1】:

我刚刚设法复制了您的问题。您正在做的是尝试在 MySQL 链接表上将 Query 作为 Access 查询运行。经过一些研究,这似乎是一个已知的错误:请参阅here。您不能拥有多个工会。然而,它确实可以作为 SQL Pass-Through 工作。在设计选项卡上,在 Union 下选择 Pass-Through(地球符号)。这确实意味着您需要选择您的 DNS 来运行它。

【讨论】:

  • 这是一个有趣的错误。仍然在 MS Access 13/16 中,因为错误指向更早版本的 Access 和 MySQL?如果您删除 SELECT 语句周围的括号怎么样?
  • @Parfait 我试过了。我什至尝试通过将其拆分为两个 Access 查询(它们都单独工作)然后对它们进行联合来作弊;但没有快乐!我认为实际上该错误不在 Access 中,而是在来自 Oracle 的 ODBC 驱动程序中。我曾在 Access 中使用 ODBC 和其他后端,但从未见过相同的情况。
  • @JonathanWillcock 谢谢你!
  • @NoobPrgmr 很高兴。祝你有美好的一天。
猜你喜欢
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多