Excel MS查询生成器中的语法错误
我正在Excel 2010中创建一个参数化查询,以从Access 2010数据库中获取数据(数据确实驻留在Access中) 这是Access中的查询:Excel MS查询生成器中的语法错误,excel,ms-access-2010,query-builder,Excel,Ms Access 2010,Query Builder,我正在Excel 2010中创建一个参数化查询,以从Access 2010数据库中获取数据(数据确实驻留在Access中) 这是Access中的查询: SELECT [Patient Stat Sched Data Dump].[Pt Comp ID], [Patient Stat Sched Data Dump].Date, [Patient Stat Sched Data Dump].Gender, [Patient Stat Sched Data Dump].Age,
SELECT [Patient Stat Sched Data Dump].[Pt Comp ID], [Patient Stat Sched Data Dump].Date,
[Patient Stat Sched Data Dump].Gender, [Patient Stat Sched Data Dump].Age,
[Group Type].Description, Nz([Patient Stat Sched Data Dump].[Pt Dept ID],'EMPLOYEE') AS DeptID,
[App Type].Description AS [App Type], [Group Type].[Sort Order], [App Type].Provider, [App Type].[Time Allocated]
FROM ([App Type]
INNER JOIN [Patient Stat Sched Data Dump] ON [App Type].AType = [Patient Stat Sched Data Dump].Type)
LEFT JOIN [Group Type] ON [App Type].Group = [Group Type].Group
WHERE [Patient Stat Sched Data Dump].Status ="T"
ORDER BY [Patient Stat Sched Data Dump].[Pt Comp ID], [Patient Stat Sched Data Dump].Date
由于微软的不一致性,括号必须更改为Query Builder的反引号,因此我在其中添加了以下内容:
SELECT `Patient Stat Sched Data Dump`.`Pt Comp ID`, `Patient Stat Sched Data Dump`.Date,
`Patient Stat Sched Data Dump`.Gender, `Patient Stat Sched Data Dump`.Age,
`Group Type`.Description, Nz(`Patient Stat Sched Data Dump`.`Pt Dept ID`,'EMPLOYEE') AS DeptID, `App Type`.Description AS `App Type`, `Group Type`.`Sort Order`, `App Type`.Provider, `App Type`.`Time Allocated`
FROM `App Type`
INNER JOIN `Patient Stat Sched Data Dump` ON `App Type`.AType = `Patient Stat Sched Data Dump`.Type
LEFT JOIN `Group Type` ON `App Type`.Group = `Group Type`.Group
WHERE `Patient Stat Sched Data Dump`.Status ="T"
ORDER BY `Patient Stat Sched Data Dump`.`Pt Comp ID`, `Patient Stat Sched Data Dump`.Date
这是查询生成器返回的错误:
Syntax error (missing operator) in query expression '`App Type`.AType = `Patient Stat Sched Data Dump`.Type LEFT JOIN `Group Type`.Group = `Group Type`.Grou'.
是的,语句末尾缺少最后一个“p”,我假设这只是错误文本的长度限制,它实际上在代码中
不,我不知道为什么设计DB的人在表(和查询)名称中放了所有这些空格,我必须考虑删除它们
该查询在Access中运行良好,但甚至没有达到在查询生成器中运行的程度-我缺少什么?在原始查询中,在secound查询中缺少类似
的括号([App Type]
和[App Type].AType=[Patient Stat Sched Data Dump].Type)。这可能不是错误,我认为值得一提的是Query Builder不会接受方括号[],而是需要回引号“`”。如果不是,我就不会去搜索/替换,也不会用两种不同的格式发布相同的查询。除非我遗漏了什么,否则这是两者之间唯一的区别。我指的是()
而不是[]
访问需要FROM
子句中的括号,用于包含多个JOIN
@Alex抱歉,我误解了。当我调整FROM语句以读取FROM(`App Type``internal JOIN``Patient Stat Sched Data Dump`` ON``App Type`.AType=`Patient Stat Sched Data Dump`.Type)左JOIN``Group Type`` ON``App Type`.Group=`Group Type`.Group
,这正是Access查询包含它们的位置,我收到以下消息:无法添加表“”(`App Type`)。
(注意:double``用于转义后面的引号,否则智能格式会让它看起来很奇怪。)