选择中的虚拟列,该虚拟列将用SQL Server中的另一个选择填充此列
如何使用虚拟列创建选择,而此列又被另一个选择填充 可能吗 例如:选择中的虚拟列,该虚拟列将用SQL Server中的另一个选择填充此列,sql,sql-server,Sql,Sql Server,如何使用虚拟列创建选择,而此列又被另一个选择填充 可能吗 例如: SELECT p.id, p.nom, amount FROM person amount = SUM(SELECT ar.amount FROM amount_r ar WHERE ar.id_person = p.id) 您正在寻找相关子查询吗 SELECT p.id, p.nom, SUM(SELECT ar.amount FROM amount_r ar WHERE ar.id_pe
SELECT
p.id, p.nom, amount
FROM
person
amount = SUM(SELECT ar.amount FROM amount_r ar WHERE ar.id_person = p.id)
您正在寻找相关子查询吗
SELECT p.id, p.nom,
SUM(SELECT ar.amount FROM amount_r ar WHERE ar.id_person =p.id) as amount
FROM person p;
这是您的查询,您可以添加任意数量的附加列。重要的是,你能够加入你的
sum(amount)
您可以使用如下子查询:
SELECT p.id,
p.nom,
ISNULL((SELECT SUM(ar.amount)
FROM amount_r ar
WHERE ar.id_person = p.id
),0)
FROM person as p
但是,这将是最好的方式,您可以通过以下方式使用group by:
SELECT p.id,
p.nom,
SUM(IIF(ar.amount IS NULL,0,ar.amount)) as amount
FROM person as p
LEFT OUTER JOIN amount_r as ar ON ar.id_person = p.id
GROUP BY p.id, p.nom
有没有办法将null数据更改为零?我已经修改了这两个版本,所以现在如果它们在amount\r表中找不到记录,它们将返回零。@cte6,使用此
总和(isnull(ar.amount,0))作为amount
@LuisChavarria。什么“错误”?你的评论没有帮助。
SELECT p.id,
p.nom,
SUM(IIF(ar.amount IS NULL,0,ar.amount)) as amount
FROM person as p
LEFT OUTER JOIN amount_r as ar ON ar.id_person = p.id
GROUP BY p.id, p.nom