MS Access SQL 中带有多值字段的参数弹出问题

我有以下 SQL 查询:

FROM Registration AS r
WHERE r.RegisteredFor.Value=[Forms]![RunQueries]![filterBy];

当我运行此查询时,它报告正常,但是,当我运行使用此查询的第二个查询时,例如:

SELECT reg.Gender,Count(reg.Gender) AS CountOfGender,Round(Count(reg.Gender)*100/(SELECT COUNT(ID) FROM FirstQuery),1) AS Percentage
FROM FirstQuery AS reg
GROUP BY reg.Gender;

它总是弹出一个要求“r.RegisteredFor.Value”的参数框,或者如果我尝试调整一些东西,它开始抱怨“百分比”部分中的聚合函数。

如果我从 WHERE 中删除 r.RegisteredFor.Value,或者用其他东西替换它,一切正常。我已经尝试将第一个查询 WHERE 中的“=”替换为“in”,甚至使用 SELECT 来检查 RegisteredFor 链接表上的这些值,但没有什么能阻止参数框弹出。

nfsking 回答:MS Access SQL 中带有多值字段的参数弹出问题

嗯。 . .您可以考虑使用条件聚合。假设您有两种性别,"M""F"

SELECT SUM(IIF(reg.Gender = "M",1,0)) AS m_cnt,SUM(IIF(reg.Gender = "F",0)) AS f_cnt,AVG(IIF(reg.Gender = "M",100.0,0)) AS m_percent,AVG(IIF(reg.Gender = "F",0)) AS f_percent
FROM FirstQuery AS reg;
本文链接:https://www.f2er.com/854141.html

大家都在问