无法在子查询的where子句中引用聚合函数的别名

时间:2013-06-12 08:13:21

标签: sql ms-access aggregate-functions ms-access-2003 subquery

我遇到这个select语句的问题:

SELECT
  field1,
  MIN(field2) AS MinOfField2,
  (SELECT id FROM table2 WHERE something = MinOfField2) AS table2_id
FROM table1
GROUP BY field1

当我尝试执行此查询时,访问会弹出一个对话框,要求我输入'MinOfField2'的参数值。

首先,我尝试在子查询中直接使用聚合函数,但似乎也不允许这样做。

enter image description here

我能找到的最近的问题是这一个:Access alias in subquery

1 个答案:

答案 0 :(得分:2)

我相信这是您正在寻找的查询:

SELECT 
    t1.field1, 
    t1.MinOfField2,
    table2.id AS table2_id
FROM
    (
        SELECT 
            field1, 
            MIN(field2) AS MinOfField2
        FROM table1 
        GROUP BY field1
    ) t1
    INNER JOIN
    table2
        ON t1.MinOfField2=table2.something