Суммирование столбцов из двух отдельных таблиц SQL - PullRequest
0 голосов
/ 30 сентября 2019

В настоящее время я пытаюсь сложить вместе два столбца в разных таблицах, но когда одна таблица пуста, она не будет складывать столбцы из таблицы, которая не является.

Это строится наSSMS, для использования с PowerApps, который, к сожалению, не позволяет использовать триггеры SQL. Вместо этого я использую хранимые процедуры, активированные Flow. Один из них складывает столбцы из таблицы Units и запускает UPDATE для столбца в моей таблице StaffTotals.

В этой итоговой таблице у меня есть еще несколько столбцов для оценки, которые также могут быть заполнены и добавлены втот же столбец TotalTeaching. Однако, если моя таблица Units пуста, 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;

Мне нужно, чтобы она по-прежнему отображала SUM мои столбцы Оценки, даже еслиТаблица единиц измерения пуста. Любая помощь?

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

ВНУТРЕННЕЕ СОЕДИНЕНИЕ будет включать только строки, присутствующие в обеих таблицах. Вам нужно будет изучить ВНЕШНЕЕ СОЕДИНЕНИЕ некоторой формы, чтобы включить строки, которые присутствуют только в одной таблице.

Опции включают в себя левое, правое и полное внешние объединения в зависимости от того, можете ли вы безопасно исключить одну таблицу, если в другой нет данных, или хотите включить одну из таблиц, несмотря на то, что в другой нет ничего.

0 голосов
/ 01 октября 2019

Спасибо! Абсолютно идеально. В конце концов, это было ПРАВИЛЬНОЕ СОЕДИНЕНИЕ, но оно прекрасно работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...