Умножьте вновь введенную строку на другое значение столбца и найдите итоговую сумму в SQL
У меня есть 4 таблицы здесь, мне нужно умножить вновь введенное значение строки в таблице с другой строкой и найти общую сумму, используяCustomerId
:
CustomerTable:
CustomerId Name EmailId
-------------------------
1 Paul [email protected]
2 John [email protected]
LoyaltyPointTable:
LoyaltyPointsId LoyaltyType Points
---------------------------------------
1 Registration 10
2 Loginstatus 1
3 Downloading 10
4 Redemming 1
5 Sharing 20
6 Refer 10
LoyaltyDetailsTable:
LoyaltyDetailsId LoyaltyPointsId CustomerId Dates
-------------------------------------------------
1 1 1 2015-01-22
2 2 1 2015-01-22
3 3 2 2015-01-22
4 3 1 2015-01-22
5 4 1 2015-01-22
6 4 1 2015-01-24
7 5 1 2015-01-24
Этот запрос отлично работает на общую сумму для каждогоLoyaltyType
SELECT
LoayaltyPointsTable.LoyaltyType,
COUNT(CustomerTable.CustomerId) AS UserActions,
SUM(LoayaltyPointsTable.Points) AS TotalPoints
FROM
LoayaltyPointsTable
JOIN
LoyaltyDetailsTable ON LoayaltyPointsTable.LoyaltyPointsId = LoyaltyDetailsTable.LoyaltyPointsId
JOIN
CustomerTable ON CustomerTable.CustomerId = LoyaltyDetailsTable.CustomerId
WHERE
CustomerTable.CustomerId = 1
GROUP BY
LoyaltyDetailsTable.CustomerId ,LoayaltyPointsTable.LoyaltyType
нижеRedeemPointsTable
создается в связи с погашением строки вLoyaltyPointTable
:
RedeemPointsTable:
RedeemPointsId CustomerId ShopName BillNo Amount
------------------------------------------------
1 1 Mall x 4757 100
3 1 Mall y SH43 50
4 1 Mall x 7743 10
6 1 Mall x s34a 60
То, что я ожидаю, прежде чем рассчитать общую сумму, я хочу столбецAmount
сумма(100+50+10+60) * 1
вRedeeming
вLoyaltyPointTable
должны быть добавлены с общим количеством очков для каждогоCustomerId
Ожидаемый результат
LoyaltyType UserActions TotalPoints
-------------------------------------
Downloading 1 10
Loginstatus 1 1
Redemming 4 (100+50+10+60)*1(here using Amount in RedeemPointsTable)
Refer 1 10
Registration 1 10
Sharing 1 20
Количество действий пользователя равно 4, оно основано наAmount
он вошел вRedeemPointsTable
Нужно ли вносить изменения в добавление столбца внешнего ключа вRedeemPointsTable
или можешь указать на мою ошибку?
Любая помощь будет отличной.