sql-添加子查询时出现查询语法问题

sql-添加子查询时出现查询语法问题,sql,sql-server,subquery,Sql,Sql Server,Subquery,如果没有任何语法错误,我似乎无法执行此查询,我得到以下错误: 无法绑定多部分标识符TBL1.Avg_CycleTime 查询: SELECT (AVG(TBL1.Avg_CycleTime + TBL4.Avg_GRM_CycleTime)) AS Overall_Renewals_CycleTime FROM ( SELECT * FROM ( SELECT AVG(1.00 * Avg_DayDiff) AS Avg_CycleTime FRO

如果没有任何语法错误,我似乎无法执行此查询,我得到以下错误:

无法绑定多部分标识符TBL1.Avg_CycleTime

查询:

SELECT (AVG(TBL1.Avg_CycleTime + TBL4.Avg_GRM_CycleTime)) AS Overall_Renewals_CycleTime
FROM (
    SELECT *
    FROM (
        SELECT AVG(1.00 * Avg_DayDiff) AS Avg_CycleTime
        FROM (
            SELECT AVG(1.00 * DATEDIFF(DAY, yy, xx)) AS Avg_DayDiff
            FROM Database1.dbo.tbl_1
            WHERE month(datecompleted) = month(dateadd(month, - 1, current_timestamp))
                AND year(datecompleted) = year(dateadd(month, - 1, current_timestamp))
            ) t1
        WHERE Avg_DayDiff > 0
        ) TBL1
    CROSS JOIN (
        SELECT *
        FROM (
            SELECT AVG(1.00 * Avg_DayDiff) AS Avg_GRM_CycleTime
            FROM (
                SELECT DATEDIFF(DAY, xx, uu) AS Avg_DayDiff
                FROM Database1.dbo.tbl_1
                WHERE month(datecompleted) = month(dateadd(month, - 1, current_timestamp))
                    AND year(datecompleted) = year(dateadd(month, - 1, current_timestamp))
                    AND ApprovalRequiredFrom = 'GRM'
                ) t2
            WHERE Avg_DayDiff > 0
            ) TBL2
        ) TBL3
    ) TBL4
有人能告诉我我做错了什么吗?我想得到平均周期时间和平均周期时间之间的平均值


干杯,

-在select中,您正在从TBL1中选择子查询中不存在的值。将其更改为TBL4

select (AVG(TBL1.Avg_CycleTime + TBL4.Avg_GRM_CycleTime)) as Overall_Renewals_CycleTime
from ()
  )TBL4

我也不会使用这么多嵌套选择,或者至少不选择*选择*从来都不是个好主意

-在select中,您正在从TBL1中选择子查询中不存在的值。将其更改为TBL4

select (AVG(TBL1.Avg_CycleTime + TBL4.Avg_GRM_CycleTime)) as Overall_Renewals_CycleTime
from ()
  )TBL4

我也不会使用这么多嵌套选择,或者至少不选择*选择*从来都不是个好主意

我建议婴儿步。一次只构建一个步骤,并修复途中遇到的任何错误。从最里面的子查询开始,向外扩展。将TBL1.Avg_CycleTime更改为Avg_CycleTime此神圣地狱嵌套噩梦中的问题是顶行AVGTBL1.Avg_CycleTime+TBL4.Avg_GRM_CycleTime此处没有TBL1。只有一个TBL4。由于查询中只有1个平均周期时间,您不需要使用“Tbl1”限定字段。总之,我建议使用小步骤。一次只构建一个步骤,并修复途中遇到的任何错误。从最里面的子查询开始,向外扩展。将TBL1.Avg_CycleTime更改为Avg_CycleTime此神圣地狱嵌套噩梦中的问题是顶行AVGTBL1.Avg_CycleTime+TBL4.Avg_GRM_CycleTime此处没有TBL1。只有一个TBL4。由于查询中只有1个平均周期时间,您根本不需要使用“Tbl1”限定字段