我要尋找一個解決以下幾點:如何彙總多列多值
進去用戶表,找到誰列出了該網站上的項目的用戶。在這個用戶表中,沒有關於拍賣的列。相反,它被連接到一個帶有密鑰的帳戶表(在帳戶中,該列被稱爲用戶)
從這些ID(具有用於拍賣的列出項目的用戶)中,我需要找到他們的帳戶餘額。這也在賬戶表中。餘額包含在名爲operation_amount的列中。我還有另一個名爲operation_type的列,它描述了一個用戶是否有一個正或負的餘額。例如,如果operation_type = 1,他有一個負餘額,而如果operation_type = 2,他有一個正餘額。
現在我有一個名爲tmpinvoice
另一個表,其中有一個叫金額欄。這顯示了用戶需要向網站管理員支付多少費用。
鑑於此,我需要計算他必須支付多少錢。例如,如果用戶的餘額爲$ 200,則需要根據operation_type
來檢查它是否爲負值或正值。
所以我的查詢在哪裏做這個只爲記錄
SELECT u.id AS id_user, u.nick,
CASE ac.operation_type WHEN 1 THEN ac.operation_amount - tm.amount
WHEN 2 THEN ac.operation_amount + tm.amount
ELSE 'N/A' END AS `fee`
FROM auctionbg_search.accounts AS ac
LEFT JOIN auctionbg_search.users AS u ON TRUE
AND u.id = ac.user
LEFT JOIN auctionbg_search.auctions AS a ON TRUE
AND a.id = ac.auction
LEFT JOIN auctionbg_search.tmpinvoice AS tm ON TRUE
WHERE TRUE
AND tm.amount = ac.operation_amount
這裏我收到什麼結果
http://gyazo.com/3d7e7f52ee14d21cc8c8d33b6bbc479a
是但這算「費」僅適用於1個值列,如果用戶有多個值會怎麼樣
喜歡這個用戶:
http://gyazo.com/c3bdb29fa235044ab888dc0385bbcdbd
我需要從給定用戶的operation_amount計算總量,並從總量去除tmpinvoice
,
我的一個朋友告訴我使用
IF(SUM(ac.operation_amount), IS NULL , 0, sum(ac.operation_amount)
,並加入2次帳戶(表格)均爲+和 -
加1的時間爲+,2的時間爲 -
但我不知道將如何看起來:)
演示中,你正在使用的數據庫系統? –
MySQL 5你爲什麼要問? – ameldur