我在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服務器管理工作室。感謝您的編輯。我調整了我的代碼中的單引號。 –