Sql 我们可以在group子句中使用相关子查询吗?

Sql 我们可以在group子句中使用相关子查询吗?,sql,ms-access,Sql,Ms Access,我有一个表t2,其中字段Col&a、b、c、d、e作为记录。我试图得到如下输出: r1 0 1 1 b a 2 d c 4 e 当我使用下面的查询时,我得到一个错误:表达式中的语法错误从t2中选择Countb.Col+1作为b,其中a.Col>b.Col+1\2 Transform first(col) as col1 Select ((Select Count(b.Col)+1 from t2 as b where a.col>

我有一个表t2,其中字段Col&a、b、c、d、e作为记录。我试图得到如下输出:

r1      0   1
1       b   a
2       d   c
4       e

当我使用下面的查询时,我得到一个错误:表达式中的语法错误从t2中选择Countb.Col+1作为b,其中a.Col>b.Col+1\2

Transform
first(col) as col1
Select  ((Select Count(b.Col)+1 from t2 as b where a.col>b.col)+1)\2 as r1
From t2 as a
Group  by (((Select Count(b.Col)+1 from t2 as b where a.col>b.col)+1)\2)
Pivot
(Select Count(b.Col)+1 from t2 as b where a.col>b.col) MOD 2

我不这么认为。只需使用子查询:

select r1
from (select a.*,
             (Select Count(b.Col)+1 from t2 as b where a.col>b.col)+1)\2 as r1
      from t2 as a
     ) as a1
group by r1;

或者,因为您只选择不同的值,所以在原始查询中使用select distinct而不是group by。

您尝试此操作时会遇到什么错误?错误:表达式中的语法错误选择Countb.Col+1从t2中选择为b,其中a.Col>b.Col+1\2显示错误。ERR:FROM子句中的语法错误。您还使用了表别名“a”两次。我们能做到吗?@KT11。这可以在大多数数据库中完成。我不知道MS Access中存在限制,但您可以更改别名。