我在SQL新我有一个关于我的代码的问题,如图下:SQL与在选择选择创建列,并与另一列减去该,创建一个新的列
SELECT membernummer, name, c.ammount, c.terms,
(select SUM(isnull(amount, 0))
from payments p where m.member_ID = p.member_ID and p.year = c.year) AS payed
From member m
INNER JOIN contribution c ON m.member_ID = c.member_ID
where c.year = 2014
现在我会像从'金额'(这是需要支付的贡献)中减去“支付”(实际支付)。
我试着引用其他部分中的“payed”并将其减去,但如果我是正确的,则不能引用SQL中的别名。 我也尝试添加另一种选择中选择:
(select SUM(isnull(amount, 0))
from payments p
where m.member_ID = p.member_ID
and p.year = c.year) - sum(amount) AS 'still to be payed'
这只是给了我一个错误。
我也有一个关于我的代码中的ISNULL函数的小问题,它应该将'payed'列中的'null'更改为0.但是像这样实现它不起作用。
感谢您查看我的代码。如果你需要更多的信息,请问,我对此很新,所以我可能会错过显而易见的事情。
您正在使用哪些DBMS?对于标识符使用单引号('AS'仍有待支付')是无效的(标准)SQL。 –
Microsoft SQL服务器管理工作室。感谢您的编辑。我调整了我的代码中的单引号。 –