我要做的是从三个不同的表中提取唯一的数据集,并使用UNION查询将它们一起显示。它们都有一个共同的字段,因此它们应该通过该字段链接。当我尝试运行“无法执行查询。无效的操作或使用多值字段的语法”的查询时,我收到错误。我知道哪个字段导致问题,这是“业务线”字段。我该如何解决这个问题,以便查询能够处理它?它甚至可能吗?
这是我正在使用的SQL语句:
SELECT [Financial Bureau Reports].[Date Year], [Financial Bureau Reports].[Section Chief].[Financial Bureau Reports].[Outcome], [Financial Bureau Reports].[Type of Review]
FROM [Financial Bureau Reports]
WHERE (([Financial Bureau Reports].[CoCode (NAIC)]=[Forms]![Home Screen]![txtCoCode]))
UNION ALL
SELECT [Market Analysis Review].[Data Year], [Market Analysis Review].[Review Level], [Market Analysis Review].[Line of Business].[value], [Market Analysis Review].[Recommendation], [Market Analysis Review].[Analyst], [Market Analysis Review].[Action]
FROM [Market Analysis Review]
WHERE(([Market Analysis Review].[CoCode (NAIC)]=[Financial Bureau Reports].[CoCode(NAIC)]))
UNION ALL
SELECT [MarketConductExams].[State], [MarketConductExams].[Report Date]
FROM [MarketConductExams]
WHERE [MarketConductExams].[CoCode (NAIC)]=[Market Analysis Review].[CoCode (NAIC)];
很抱歉缺少格式化,显然SQL不能很好地转移。
另外,我在Microsoft Access 2010中使用SQL。
如果问题太模糊或需要澄清,请告诉我。谢谢!
答案 0 :(得分:3)
您无法将select中列数不同的查询合并在一起。这些似乎甚至不是应该联合在一起的相关查询。我认为您需要向您的应用程序发送三个单独的查询。
答案 1 :(得分:1)
我通常在工会周围有一个外部SELECT,但其他的是正确的,你需要为这些字段提供相同数量的字段和相同的名称。
使用AS同步字段名称。 如果你有一些不在其他查询中的字段,那么你可以制造它们:null作为SomeOutputField或''作为SomeOutputField。
答案 2 :(得分:0)
我不知道为什么你特别得到那条消息,但是UNION语句要求每个SELECT语句具有相同的列数并且它们具有相同的数据类型。对于您发布的SQL语句,情况并非如此。
答案 3 :(得分:0)
我认为你需要把你的桌子互相加入,而不是联合起来 - 就像这样:
SELECT [Financial Bureau Reports].[Date Year],
[Financial Bureau Reports].[Section Chief].[Financial Bureau Reports].[Outcome],
[Financial Bureau Reports].[Type of Review],
[Market Analysis Review].[Data Year],
[Market Analysis Review].[Review Level],
[Market Analysis Review].[Line of Business].[value],
[Market Analysis Review].[Recommendation],
[Market Analysis Review].[Analyst],
[Market Analysis Review].[Action],
[MarketConductExams].[State],
[MarketConductExams].[Report Date]
FROM [Financial Bureau Reports]
(JOIN [Market Analysis Review]
ON [Market Analysis Review].[CoCode (NAIC)]=[Financial Bureau Reports].[CoCode(NAIC)]
(JOIN [MarketConductExams]
ON [MarketConductExams].[CoCode (NAIC)]=[Market Analysis Review].[CoCode (NAIC)]))
WHERE [Financial Bureau Reports].[CoCode (NAIC)]=[Forms]![Home Screen]![txtCoCode];