4 回答

TA貢獻1886條經驗 獲得超2個贊
SELECT distinct a.購房人,a.房間號,(a.總房價 -
(SELECT SUM( b.已收款金額 )
FROM table1 a, table2 b
WHERE a.房間號 = b.房間號
))
FROM table1 a,table2 b where
a.房間號 = b.房間號
或者按樓主的方法
SELECT distinct a.購房人,a.房間號,(a.總房價 - (
SELECT SUM( b.已收款金額 )
FROM table1 a, table2 b
WHERE a.房間號 = b.房間號
) )
FROM table1 a
LEFT JOIN table2 b ON
a.房間號 = b.房間號
不能用group by 語句,不過還是不太好
樓主寫的不對,首先b.SUM(已收款金額) 不能這么寫,sum(b.已收款金額)還行。這種left join groupby 也不能這么用。
在Oracle里面加減乘除是可以直接用+-*/的,也就是說"a.總房價"后面可以直接跟運算符。

TA貢獻1878條經驗 獲得超4個贊
先用聚合函數求和,然后再減
1 2 3 4 5 | SELECT t1.購房人, (t1.總房價- tu.已收款金額) AS UnPaid FROM table1 AS t1, (SELECT sum(t2.已收款金額) AS 已收款金額,房間號 FROM dbo.table2 AS t2 GROUP BY 房間號) as tu WHERE t1.房間號= tu.房間號 |
添加回答
舉報