我正在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,
[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
由于微软有点不一致,括号必须更改为查询生成器的后引号,所以这就是我放在那里的内容:
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返回的错误:
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”,我假设这只是错误文本的长度限制,它实际上存在于代码中。
不,我不知道为什么设计数据库的人把所有这些空格放在表(和查询)名称中,我将不得不考虑删除它们。
查询在Access中运行得很好,但是甚至没有达到在查询构建器中运行的程度 - 我缺少什么?