【发布时间】:2014-08-11 19:45:21
【问题描述】:
以下是我的查询:
SELECT
UT.AgentName AS [Agent Name],
UT.TeamName AS Team,
Format(Now(),"Short Date") AS [As Of],
Sum(I.RegPointValue) AS Points
FROM
(SELECT
UU.AgentID,
(Nz(UU.LastName,'')+", "+Nz(UU.FirstName,'')) AS AgentName ,
TT.TeamName
FROM
Users AS UU
INNER JOIN
Teams AS TT
ON UU.TeamID = TT.TeamID) AS UT
LEFT JOIN
(InfractionTypes AS I
INNER JOIN
(DateCodes AS D
INNER JOIN
AquiredInfractions AS AI
ON D.DateID = AI.DateID)
ON I.InfractionID = AI.InfractionID)
ON UT.AgentID = AI.AgentID
WHERE (((D.DateValue)>=#4/1/2014#))
GROUP BY UT.TeamName, UT.AgentName, I.RegPointValue;
这样做的目的是总结一个人将根据他们收到的出勤违规获得的所有分数。如果我将LEFT JOIN 更改为INNER JOIN,则查询有效,但仅返回已收到出勤违规的人员姓名。但我想要的是它返回所有人的姓名,如果他们没有收到任何积分,他们的积分为 0。
我尝试保存或执行时得到的错误是Join expression not supported。在过去的几个小时里,我一直试图通过弄乱连接的顺序来让它工作,但无济于事。使用 MS-Access 2013。
【问题讨论】:
标签: sql ms-access join left-join