Запросить сумму в двух таблицахЗапрос двух таблиц
У меня есть таблица транзакций и таблица платежей. Мне нужно получить общую сумму как в таблице Trans, так и в таблице платежей, и она должна быть группой TransID. Я надеюсь, что кто-то может помочь мне с правильным заявлением sql для этого.
Я попробовал sql ниже, но сумма суммы на Trans Table будет умножена на количество записей одного и того же TransID в таблице Payment.
-> Select Trans.TransID, sum(Trans.Amount), sum(Payment.Amount)
from Trans
Left Join Payment on Payment.TransID = Trans.TransID
Я также пробовал sql ниже, но время обработки больше по сравнению с заявлением sql выше.
-> Select TD.TransID, TD.Amt, PD.paid
from
(
Select Trans.TransID, Sum(Trans.Amount) AS Amt
from Trans Group By Trans.TransID
) AS TD
Left Join
(
Select Payment.TransID, sum(Payment.Amount) AS Paid
from payment
Group by Payment.TransID
) AS PD On PD.TransID = TD.TransID
Транс Таблица
TransID | Amount
T1 | 10
T2 | 15
T3 | 12
T4 | 20
T5 | 11
T1 | 15
T5 | 14
----------
Оплата Таблица
TransID | Amount
T1 | 5
T3 | 10
T1 | 3
T2 | 5
T5 | 10
----------
Результат запроса мне нужно, как предполагается, должен быть таким образом:
TransID | Amount | Paid
T1 | 25 | 8
T2 | 15 | 5
T3 | 12 | 10
T4 | 20 | 0
T5 | 25 | 10
Я пробовал это, но он дает сообщение об ошибке Неизвестный столбец 'TransID' в 'списке полей' –
@CarloUyMatiao Я думаю, что мой ответ в порядке, вы, вероятно, получаете эту ошибку в ответ Гордона, он просто набросал псевдоним, Я собираюсь отредактировать его ответ – fthiella