对两个单独的 SQL 表中的列求和
Summing Columns from two separate SQL tables
我目前正在尝试将不同 table 上的两列加在一起,但是当一个 table 为空时,它不会将 table 中的列加起来不是。
这是在 SSMS 上构建的,用于与 PowerApps 一起使用,遗憾的是它不允许使用 SQL 触发器。相反,我正在使用由 Flow 激活的存储过程。其中之一将 Units table 中的列加在一起并在我的 StaffTotals table.
中的列上运行更新
关于总计 table 我还有几列用于评估,这些列也可能会被填充并输入到相同的 totalTeaching 列中。但是,如果我的单位 table 为空,则 SUM 仅显示 0,而不是在 StaffTotals.Assessment 列中添加任何数字。
WITH pretotalTeaching AS
(
SELECT
dbo.StaffTotals.MMU_ID,
(SUM(dbo.StaffTotals.PG60Assessment) + SUM(dbo.StaffTotals.UG30Assessment) +
dbo.Units.[Teaching Hours] + SUM(dbo.Units.[Preparation Hours]) +
SUM(dbo.Units.[Assessment Hours])) AS TeachingTotal
FROM
dbo.Units
INNER JOIN
dbo.StaffTotals ON dbo.StaffTotals.MMU_ID = dbo.Units.MMU_ID
GROUP BY
dbo.StaffTotals.MMU_ID
)
UPDATE preStaffTotals
SET preStaffTotals.totalTeaching = pretotalTeaching.TeachingTotal
FROM dbo.StaffTotals as preStaffTotals
INNER JOIN pretotalTeaching ON preStaffTotals.MMU_ID = pretotalTeaching.MMU_ID;
即使单元 table 为空,我仍需要它来显示我的评估列的 SUM。有帮助吗?
INNER JOIN 将只包含同时出现在两个 table 中的行。您将需要查看某种形式的 OUTER JOIN 以包含仅存在于单个 table 中的行。
选项包括左、右和完全外部联接,具体取决于您是否可以安全地排除一个 table 如果另一个没有数据,或者想要包括其中一个 table 尽管其他什么都没有。
我目前正在尝试将不同 table 上的两列加在一起,但是当一个 table 为空时,它不会将 table 中的列加起来不是。
这是在 SSMS 上构建的,用于与 PowerApps 一起使用,遗憾的是它不允许使用 SQL 触发器。相反,我正在使用由 Flow 激活的存储过程。其中之一将 Units table 中的列加在一起并在我的 StaffTotals table.
中的列上运行更新关于总计 table 我还有几列用于评估,这些列也可能会被填充并输入到相同的 totalTeaching 列中。但是,如果我的单位 table 为空,则 SUM 仅显示 0,而不是在 StaffTotals.Assessment 列中添加任何数字。
WITH pretotalTeaching AS
(
SELECT
dbo.StaffTotals.MMU_ID,
(SUM(dbo.StaffTotals.PG60Assessment) + SUM(dbo.StaffTotals.UG30Assessment) +
dbo.Units.[Teaching Hours] + SUM(dbo.Units.[Preparation Hours]) +
SUM(dbo.Units.[Assessment Hours])) AS TeachingTotal
FROM
dbo.Units
INNER JOIN
dbo.StaffTotals ON dbo.StaffTotals.MMU_ID = dbo.Units.MMU_ID
GROUP BY
dbo.StaffTotals.MMU_ID
)
UPDATE preStaffTotals
SET preStaffTotals.totalTeaching = pretotalTeaching.TeachingTotal
FROM dbo.StaffTotals as preStaffTotals
INNER JOIN pretotalTeaching ON preStaffTotals.MMU_ID = pretotalTeaching.MMU_ID;
即使单元 table 为空,我仍需要它来显示我的评估列的 SUM。有帮助吗?
INNER JOIN 将只包含同时出现在两个 table 中的行。您将需要查看某种形式的 OUTER JOIN 以包含仅存在于单个 table 中的行。
选项包括左、右和完全外部联接,具体取决于您是否可以安全地排除一个 table 如果另一个没有数据,或者想要包括其中一个 table 尽管其他什么都没有。