我想了解已批准的最高拨款金额的评估提案的详细信息。 查询存在一些问题,这是错误消息。 您试图在ms访问中执行不包含指定表达式“Title”的查询作为聚合函数。
SELECT Proposal.ProposalID, Proposal.Title, Proposal.RequestedAmmount, Researcher.Name, MAX(Proposal.RequestedAmmount)
FROM Researcher, Proposal
WHERE Researcher.ResearcherID=Proposal.ResearcherIDSub
GROUP BY Proposal.ProposalID ;
由于
答案 0 :(得分:2)
在GROUP BY
查询中,您需要对不在函数内的所有参数进行分组。因此,在您的情况下,Proposal.Title, Proposal.RequestedAmmount, Researcher.Name
也需要进行分组。
您需要重新查看SELECT
和GROUP BY
声明。看看您是否真的需要字段 - Proposal.Title
,Proposal.RequestedAmmount
,Researcher.Name
。
如果你需要它们,也需要将它们分组。
答案 1 :(得分:0)
您的查询有两个问题:
要解决这些问题,请将查询更改为
GROUP BY 1, 2, 3, 4
(SQL标准允许逐列显示表达式和列位置 - 我发现位置更清晰,更容易和更简洁)如下:
SELECT
Proposal.ProposalID,
Proposal.Title,
Proposal.RequestedAmmount,
Researcher.Name,
MAX(Proposal.RequestedAmmount)
FROM Researcher
LEFT JOIN Proposal ON Researcher.ResearcherID=Proposal.ResearcherIDSub
GROUP BY 1, 2, 3, 4;