将access查询转换为SQL Server 2012查询时出错
我正在将Access 1010中的查询转换为SQL Server 2012。 以下是查询的一部分将access查询转换为SQL Server 2012查询时出错,sql,sql-server,ms-access,Sql,Sql Server,Ms Access,我正在将Access 1010中的查询转换为SQL Server 2012。 以下是查询的一部分 Count(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration, Round([TotalDuration]/[TotalSessions],1) AS AverageDuration 我得到以下错误: 列名称“TotalDuration”无效。 列名称“TotalSessions”无效 Tota
Count(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
Round([TotalDuration]/[TotalSessions],1) AS AverageDuration
我得到以下错误:
列名称“TotalDuration”无效。
列名称“TotalSessions”无效
TotalDuration和TotalSessions的别名是否需要在SQL Server中进行不同的处理
如果是这样,怎么办
谢谢在SQLServer中,您不能使用刚刚分配的别名。您要么需要使用子查询,要么重新使用
SUM
和COUNT
重复使用:
Count(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
Round(Sum(Stats.Duration)/Count(Stats.SessionNumber),1) AS AverageDuration
子查询:
SELECT TotalSessions, TotalDuration, Round(TotalDuration/TotalSessions,1) AS AverageDuration
FROM
(
SELECT RCount(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
FROM yourTableName
) subquery
在SQLServer中,您不能处理刚刚分配的别名。您要么需要使用子查询,要么重新使用
SUM
和COUNT
重复使用:
Count(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
Round(Sum(Stats.Duration)/Count(Stats.SessionNumber),1) AS AverageDuration
子查询:
SELECT TotalSessions, TotalDuration, Round(TotalDuration/TotalSessions,1) AS AverageDuration
FROM
(
SELECT RCount(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
FROM yourTableName
) subquery
在SQLServer中,您不能处理刚刚分配的别名。您要么需要使用子查询,要么重新使用
SUM
和COUNT
重复使用:
Count(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
Round(Sum(Stats.Duration)/Count(Stats.SessionNumber),1) AS AverageDuration
子查询:
SELECT TotalSessions, TotalDuration, Round(TotalDuration/TotalSessions,1) AS AverageDuration
FROM
(
SELECT RCount(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
FROM yourTableName
) subquery
在SQLServer中,您不能处理刚刚分配的别名。您要么需要使用子查询,要么重新使用
SUM
和COUNT
重复使用:
Count(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
Round(Sum(Stats.Duration)/Count(Stats.SessionNumber),1) AS AverageDuration
子查询:
SELECT TotalSessions, TotalDuration, Round(TotalDuration/TotalSessions,1) AS AverageDuration
FROM
(
SELECT RCount(Stats.SessionNumber) AS TotalSessions, Sum(Stats.Duration) AS TotalDuration,
FROM yourTableName
) subquery
你可以这样做
SELECT TotalSessions
,TotalDuration
,Round([TotalDuration]/[TotalSessions],1) AS AverageDuration
FROM (
SELECT Count([Stats].SessionNumber) AS TotalSessions
, SUM([Stats].Duration) AS TotalDuration
FROM Table_Name
) A
你可以这样做
SELECT TotalSessions
,TotalDuration
,Round([TotalDuration]/[TotalSessions],1) AS AverageDuration
FROM (
SELECT Count([Stats].SessionNumber) AS TotalSessions
, SUM([Stats].Duration) AS TotalDuration
FROM Table_Name
) A
你可以这样做
SELECT TotalSessions
,TotalDuration
,Round([TotalDuration]/[TotalSessions],1) AS AverageDuration
FROM (
SELECT Count([Stats].SessionNumber) AS TotalSessions
, SUM([Stats].Duration) AS TotalDuration
FROM Table_Name
) A
你可以这样做
SELECT TotalSessions
,TotalDuration
,Round([TotalDuration]/[TotalSessions],1) AS AverageDuration
FROM (
SELECT Count([Stats].SessionNumber) AS TotalSessions
, SUM([Stats].Duration) AS TotalDuration
FROM Table_Name
) A