Sql server 如何对sql server中两行的值求和
此SQL查询返回多行中的剩余结果。我想将剩余值相加为总剩余值。Sql server 如何对sql server中两行的值求和,sql-server,Sql Server,此SQL查询返回多行中的剩余结果。我想将剩余值相加为总剩余值。 我找到了一个可以返回您所需内容的解决方案: SELECT ( (SUM(t_price) - SUM(a_dvpay)) - ( SELECT SUM(inst_amount) FROM installment WHERE uid = user_info.uid ) ) AS remaining FROM user_info WHERE faculty_
我找到了一个可以返回您所需内容的解决方案:
SELECT (
(SUM(t_price) - SUM(a_dvpay)) - (
SELECT SUM(inst_amount)
FROM installment
WHERE uid = user_info.uid
)
) AS remaining
FROM user_info
WHERE faculty_id = @faculty_id
GROUP BY uid;
测试它:因此它将是
分期付款
表中的金额之和,我假设不是给定教员id
下的所有成员都有记录。为了满足这一需求,我使用了COALESCE
来处理instance
表中的null
:
SELECT SUM(remaining) FROM (
SELECT sum(t_price - a_dvpay) as remaining
FROM user_info
WHERE faculty_id = 1
UNION
SELECT -SUM(COALESCE(inst_amount,0))
FROM installment inst
WHERE uid IN (SELECT DISTINCT user_info.uid FROM user_info WHERE faculty_id = 1)
) x
删除GROUPBY子句
SELECT ui.uid,
(SUM(ui.t_price) - SUM(ui.a_dvpay)) - SUM(COALESCE(i.inst_amount, 0)) `remaining`
FROM user_info ui
LEFT JOIN installment i ON i.uid = ui.uid
WHERE faculty_id = @faculty_id
GROUP BY ui.uid;
别名MySQL和sql server引用的结果和总和不同,请。选择其中任何一个。预期结果是什么?检查屏幕截图,您将清除我想要的内容…我的预期结果是165450+22000=187450faculty id在所有情况下都是相同的“1”…但您的查询给出的结果与我的预期不同。您可以使用您给出的公式进行检查,我只是重复你在问题中使用的公式
SELECT ((sum(t_price) - sum(a_dvpay))-(select sum(inst_amount) from installment where uid=user_info.uid)) as remaining FROM user_info WHERE (faculty_id = @faculty_id)**strong text**