所以此查询适用于特定的用户ID。
https://postimg.org/image/iq4jmvblj/
SELECT customer_profile.userID,
(SELECT sum(deposit.amountSuccessfulDeposits)
FROM customer_profile
INNER JOIN deposit
on deposit.userID = customer_profile.userID
WHERE customer_profile.userID = 2022765) as depositSum,
(SELECT sum(withdrawal.amountWithdrawal)
FROM customer_profile
INNER JOIN withdrawal
on withdrawal.userID = customer_profile.userID
WHERE customer_profile.userID = 2022765) as Wsum,
customer_profile.amountGamingPlayerBalancecurrent as PlayerBalance,
(sum(deposit.amountSuccessfulDeposits)*0.09) as Psum
FROM customer_profile INNER JOIN存款 在deposit.userID = customer_profile.userID上 INNER JOIN退出 在withdraw.userID = customer_profile.userID上 WHERE customer_profile.userID = 2022765 AND withdraw.withdrawalType ='总计'
但是,当我运行整个数据仓库(相同的查询,但消除" customer_profile.userID = 2022765"行)时,它会为每个userID的depositSum值求和整个数据库,而不是计算每个用户ID的depositSum值。
我无法在子查询中使用该组,因为它会返回多个列。
https://postimg.org/image/3vfy8p20n/
SELECT customer_profile.userID,
(SELECT sum(deposit.amountSuccessfulDeposits)
FROM customer_profile
INNER JOIN deposit
on deposit.userID = customer_profile.userID
WHERE customer_profile.userID = deposit.userID) as depositSum,
(SELECT sum(withdrawal.amountWithdrawal)
FROM customer_profile
INNER JOIN withdrawal
on withdrawal.userID = customer_profile.userID
WHERE customer_profile.userID = withdrawal.userID) as Wsum,
customer_profile.amountGamingPlayerBalancecurrent as PlayerBalance,
(sum(deposit.amountSuccessfulDeposits)*0.09) as Psum
FROM customer_profile
INNER JOIN deposit on deposit.userID = customer_profile.userID
INNER JOIN withdrawal on withdrawal.userID = customer_profile.userID
WHERE withdrawal.withdrawalType = 'Total' GROUP BY customer_profile.userID
帮助?
答案 0 :(得分:0)
以下是使用correlated subqueries
代替的一个选项:
select cp.userid,
(select sum(amountsuccessfuldeposits)
from deposit d
where cp.userid = d.userid) as depositSum,
(select sum(amountwithdrawal)
from withdrawal w
where withdrawaltype = 'Total' and cp.userid = w.userid) as wsum
from customer_profile cp