【问题标题】:Access dynamic AVG query based on filter访问基于过滤器的动态 AVG 查询
【发布时间】:2021-04-05 08:37:27
【问题描述】:

我有一个名为 tblX 的表格:

id type nr
1 Z 3
2 Y 3
3 X 3
4 X 5
5 Z 6
6 X 2

我有以下基于表 tblX 的名为 qryX 的查询

id type nr total_avg
1 Z 3 3.66
2 Y 3 3.66
3 X 3 3.66
4 X 5 3.66
5 Z 6 3.66
6 X 2 3.66

SQL 如下所示:

SELECT tblX.*, DAvg("nr","tblX") AS total_avg
FROM tblX;

当我根据类型 X 过滤查询中的数据时,我想要以下 total_avg 结果

id type nr total_avg
3 X 3 3.33
4 X 5 3.33
6 X 2 3.33

它给出的不是 3.33,而是原来的 3.66。

如何将聚合函数 DAvg("nr","tblX") 调整为动态的?

我一直在寻找一段时间,但大多数解决方案仅适用于 power bi。

目标是将我的计算集中在一个查询中,而不是在表单和报告中使用多个单独的计算字段!

【问题讨论】:

    标签: sql ms-access dynamic average


    【解决方案1】:

    这个怎么样:

    SELECT 
        tblX.*, 
        DAvg("nr", "tblX", "[type] = '" & [type] & "'") AS total_avg
    FROM 
        tblX;
    

    【讨论】:

    • 对不起,我希望 AVG (3+5+2)/3 = 3.33。 Tnx 为解决方案。但是,如果我要过滤另一个新字段怎么办?是否可以获取过滤条件?
    • 请查看正确答案。 DAvg中的过滤器可以随意调整。
    • 不幸的是,这不起作用。我现在得到每种类型的平均值。它必须根据过滤器完全动态变化。
    • 我现在得到每种类型的平均值 ...这就是您所要求的。如果您需要其他内容,请调整过滤器。
    • 那我一直无法正确表达我的愿望。我的愿望是动态查询,而不是静态查询。如果过滤器关闭或更改,结果必须自动调整。现在,当过滤器关闭时,我仍然得到每种类型的平均值,在这种情况下,我需要所有记录的平均值......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 1970-01-01
    相关资源
    最近更新 更多