這是一個通用的SQL問題,但是如果您必須知道數據庫是Firebird的話。SQL - 每列的條件
我有這個表(簡體):
user amount type -------------------- john 25 credit john 20 debit john 5 debit john 15 credit mike 15 credit
我想有一個結果看起來像這樣,使用單個查詢:
user credit debit -------------------- john 40 25 mike 15 NULL
Where credit = SUM(amount) WHERE type=credit
and debit = SUM(amount) WHERE type=debit
基本上我想有結果基於字段的SUM(在這種情況下爲金額)上的多個字段,但是在不同的條件下(在這種情況下是類型)。
在此先感謝您的任何建議。
+1。沒有什麼像聚合的舊CASE。 – 2011-05-23 16:22:50
+1,儘管您需要引用'「user」(並且匹配列聲明的大小寫)。 USER是CURRENT_USER的Firebird同義詞,它不會像當前寫入的那樣在查詢中給出相當的結果。 :) – pilcrow 2011-05-24 04:07:30
@pilcrow:你當然是對的,但這不就是一個模板嗎?如果你認爲這個查詢應該立即運行,你應該提到'table'也必須被引用。 :) – 2011-05-24 05:27:43