首页 > 解决方案 > 无法在派生表中绑定多个部件标识符

问题描述

我正在尝试运行 MAX 值的总和,然后将它们更新为一列。我认为派生表是正确的方法,但现在我不断收到一个我不知道如何解决的多部分 id 无法绑定错误。

我在 SSMS 上运行它,它将成为我的 PowerApp 数据库。我实际上是在尝试从多个单元中获取不同的或最大的评估时间值,然后将它们加在一起,按员工 ID 号分组。我正在使用派生表来尝试混合这两个聚合函数。

    WITH pretotalAssessment as
    (
    SELECT dbo.StaffTotals.Entry_ID, ISNULL(SUM(maxAssess),0) AS maxAssessHours
    FROM
    (
        SELECT dbo.StaffTotals.Entry_ID, dbo.Units.[Unit Name],
        ISNULL(MAX(dbo.Units.[Assessment Hours]),0) AS maxAssess
        FROM dbo.Units
        INNER JOIN dbo.StaffTotals ON dbo.StaffTotals.Entry_ID = dbo.Units.Entry_ID
        GROUP BY dbo.StaffTotals.Entry_ID,dbo.Units.[Unit Name]
        )Units
    )
    UPDATE preStaffTotals
    SET preStaffTotals.Assessment = pretotalAssessment.maxAssessHours
    FROM dbo.StaffTotals AS preStaffTotals
    INNER JOIN pretotalAssessment ON preStaffTotals.Entry_ID = pretotalAssessment.Entry_ID;

我的错误是:

“无法绑定多部分标识符“dbo.StaffTotals.Entry_ID”。”

我对 SQL 还是很陌生,所以这对我来说都是一个学习曲线!

标签: sqlsql-serverderived-table

解决方案


CTE 中的第一个 SELECT 来自派生表。这意味着dbo.StaffTotals在 SELECT 列表中无法访问。

您需要更换:

SELECT dbo.StaffTotals.Entry_ID

和:

SELECT Units.Entry_ID

推荐阅读