1
考慮下面的代碼:如何計算兩個別名的差異進行排序
SELECT SUM(w.valor),
SUM(CASE WHEN w.tipo = '+' THEN w.valor ELSE 0 END) AS total_credit,
SUM(CASE WHEN w.tipo = '-' THEN w.valor ELSE 0 END) AS total_debit,
w.clientUNIQUE,
c.client as cclient
FROM wallet AS w
LEFT JOIN clients AS c ON w.clientUNIQUE = c.clientUNIQUE
WHERE w.status='V'
GROUP BY w.clientUNIQUE
ORDER BY total_credit-total_debit
我試圖計算排序目的的兩個別名計算值之差,但我發現了以下錯誤:
Reference 'total_credit' not supported (reference to group function)
我在做什麼錯誤,我如何使用兩個別名之間的差值來排序結果?
有在哪裏/當你可以用這樣的別名限制。這是其中之一。你必須將整個別名表達式複製到'order by'中。或者可能包裹另一個查詢,並訂購「元」結果。 –
您的提示將別名表達式複製到表達式的順序中,顯示了我解決這個問題的正確方法。非常感謝您的幫助。我想讚揚你,但是我不可能這樣做,因爲這是一個評論。 –
你確定這是MySQL嗎?在ORDER BY子句中使用別名時,MySQL通常沒有問題,在MS SQL(不確定Oracle)中,不能使用別名並且必須重複表達式。 – Uueerdo