2011-06-29 56 views
0

下面的查詢是不正確的,但我想這樣的事情如何選擇不同的記錄列的求和值?

SELECT sum(price) AS price, sum(paid) AS paid 
FROM finance 
WHERE sum(price) != sum(paid) 
GROUP BY item_id 

我想要的是檢索總價格已售出但尚未完全支付項目的支付然而。

(這意味着總價格和總支付是不同的)

編輯1

這是我的表結構

// table schedule_member 
schedule_member_id (PK) 
schedule_id (FK: schedule.schedule_id) 
student_id (FK: student.student_id) 
fee 
paid 
added (Current timestamp) 

SQL查詢是

SELECT sum(fee) AS total_fee, sum(paid) AS total_paid 
FROM schedule_member 
WHERE total_fee != total_paid 
GROUP BY student_id 

然後出現錯誤,#1054 - 在 'where子句' 未知列 'ABC'

+0

你能描述了'finance'表好嗎? –

+1

沒有名爲'price'的列,這就是爲什麼它出錯 – Rahul

+0

請參閱我的編輯;根據你的表結構 – Rahul

回答

3

嘗試代替WHERE

SELECT sum(price) AS pricesum, sum(paid) AS paidsum 
FROM finance 
GROUP BY item_id 
HAVING pricesum <> paidsum 
0

使用HAVING難道你不只是爲了尋找下?

SELECT sum(price) AS total_price, sum(paid) AS total_paid 
FROM finance 
WHERE price <> paid 
GROUP BY item_id 
+0

@Martijn,我想你的意思是'WHERE total_price <> total_paid' – Rahul

+0

感謝您解決這個問題! – Martijn

+0

不,不工作。它說「未知列total_price」 –

2

這個怎麼樣

SELECT sum(fee) AS totalfee, 
sum(paid) AS totalpaid 
FROM finance 
WHERE totalfee < totalpaid 
GROUP BY item_id 
+0

不是,不工作太。它說「未知的專欄價格」 –

1
SELECT sum(price) AS price, sum(paid) AS paid 
FROM finance 
GROUP BY item_id 
HAVING sum(price) != sum(paid) 
相關問題