Sql DatePart可以用聚合函数执行吗?
我在Access 2010中编写了以下查询,返回了一条错误消息:Sql DatePart可以用聚合函数执行吗?,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,我在Access 2010中编写了以下查询,返回了一条错误消息: 选择DatePart(“ww”,日期,2,1)作为周编号,公制,和(公制值)作为周计量值 从qryActual 按度量、周数分组 这是错误消息: 您试图执行的查询未将指定的表达式“DatePart(“ww”,Date,2,1)”作为聚合函数的一部分。 是否存在我丢失的真正简单的错误,或者DatePart是否需要在一个单独的查询中执行,然后才能包含在由组成的组中 如果您需要更多详细信息,请告诉我。谢谢 是的,它可以。唯一的问题是,您
选择DatePart(“ww”,日期,2,1)作为周编号,公制,和(公制值)作为周计量值
从qryActual
按度量、周数分组代码>
这是错误消息:
您试图执行的查询未将指定的表达式“DatePart(“ww”,Date,2,1)”作为聚合函数的一部分。
是否存在我丢失的真正简单的错误,或者DatePart是否需要在一个单独的查询中执行,然后才能包含在由
组成的组中
如果您需要更多详细信息,请告诉我。谢谢 是的,它可以。唯一的问题是,您要按列别名分组,需要按表达式本身分组,即在groupby
中将WeekNumber
替换为DatePart(“ww”,Date,2,1)
:
为了在注释的基础上进一步阐述,以下是执行查询部分的顺序:
- FROM子句
- WHERE子句
- 分组依据子句
- 有从句
- SELECT子句
- 按条款订货
正如您可以看到的那样,SELECT
非常接近底部,因此当执行groupby
时,别名还不存在,因此可以引用列别名的唯一位置是在ORDER BY
子句中。(有些DBMS允许在其他地方使用它,例如MySQL,但这些是例外情况,而不是规则)。是的,它可以。唯一的问题是,您要按列别名分组,需要按表达式本身分组,即在groupby
中将WeekNumber
替换为DatePart(“ww”,Date,2,1)
:
为了在注释的基础上进一步阐述,以下是执行查询部分的顺序:
- FROM子句
- WHERE子句
- 分组依据子句
- 有从句
- SELECT子句
- 按条款订货
正如您可以看到的那样,SELECT
非常接近底部,因此当执行groupby
时,别名还不存在,因此可以引用列别名的唯一位置是在ORDER BY
子句中。(有些DBMS允许在其他地方使用它,例如MySQL,但这些是例外情况,而不是规则)。是的,它可以。唯一的问题是,您要按列别名分组,需要按表达式本身分组,即在groupby
中将WeekNumber
替换为DatePart(“ww”,Date,2,1)
:
为了在注释的基础上进一步阐述,以下是执行查询部分的顺序:
- FROM子句
- WHERE子句
- 分组依据子句
- 有从句
- SELECT子句
- 按条款订货
正如您可以看到的那样,SELECT
非常接近底部,因此当执行groupby
时,别名还不存在,因此可以引用列别名的唯一位置是在ORDER BY
子句中。(有些DBMS允许在其他地方使用它,例如MySQL,但这些是例外情况,而不是规则)。是的,它可以。唯一的问题是,您要按列别名分组,需要按表达式本身分组,即在groupby
中将WeekNumber
替换为DatePart(“ww”,Date,2,1)
:
为了在注释的基础上进一步阐述,以下是执行查询部分的顺序:
- FROM子句
- WHERE子句
- 分组依据子句
- 有从句
- SELECT子句
- 按条款订货
正如您可以看到的那样,SELECT
非常接近底部,因此当执行groupby
时,别名还不存在,因此可以引用列别名的唯一位置是在ORDER BY
子句中。(有些DBMS允许在其他地方使用它,例如MySQL,但这些是例外情况,而不是规则)。所以我希望不要再犯这个错误……Select语句中定义的别名在Group By语句中是禁止的吗?还是只有在应用某些类型的函数时才会出现这种情况?我已经对答案进行了扩展,解释了为什么您不能通过
引用组中的别名,这适用于所有别名,而不仅仅是具有某些函数的别名。Fantastic@GarethD!要是我能给你多一票就好了!所以我希望不要再犯这个错误了……Select语句中定义的别名在GROUPBY语句中是被禁止的吗?还是只有在应用某些类型的函数时才会出现这种情况?我已经对答案进行了扩展,解释了为什么您不能通过
引用组中的别名,这适用于所有别名,而不仅仅是具有某些函数的别名。Fantastic@GarethD!要是我能给你多一票就好了!所以我希望不要再犯这个错误了……Select语句中定义的别名在GROUPBY语句中是被禁止的吗?还是只有在应用某些类型的函数时才会出现这种情况?我已经对答案进行了扩展,解释了为什么您不能通过
引用组中的别名,这适用于所有别名,而不仅仅是具有某些函数的别名。Fantastic@GarethD!要是我能给你多一票就好了!所以我希望不要再犯这个错误了……Select语句中定义的别名在GROUPBY语句中是被禁止的吗?还是只有在应用某些类型的函数时才会出现这种情况?我已经对答案进行了扩展,解释了为什么您不能通过
引用组中的别名,这适用于所有别名,而不仅仅是具有某些函数的别名。Fantastic@GarethD!要是我能给你多一票就好了!
SELECT DATEPART("ww",Date,2,1) AS WeekNumber,
Metric,
SUM(MetricValue) AS WeeklyMetricValue
FROM qryActual
GROUP BY Metric, DATEPART("ww",Date,2,1);