SQL - 使用多个 where 语句将同一列的结果分成不同的列

SQL - separate results of same column into different cloumns using multiple where statements

我之前没有 SQL 知识。我正在尝试获取每个 FolioNumber

的不同 transactionType 的所有 debitTransactions 的总和

我有以下代码,但它给出了每个作品集的每种交易类型的所有借方交易的总和。 但我想要的是一列中每个作品集的所有 gst(106) 的总和,每个作品集的所有 levy(105) 的总和第二列和第三列中每个作品集的所有 roomRevenue(100) 的总和。


---non working code
SELECT FolioNumber,
       (Select SUM(debitTransactions) FROM HISTTRN WHERE transactionType = 106) as gst,
       (Select SUM(debitTransactions) FROM HISTTRN WHERE transactionType = 105) as levy,
       (Select SUM(debitTransactions) FROM HISTTRN WHERE transactionType = 100) as roomRevenue
FROM
HISTTRN
GROUP BY FolioNumber
ORDER BY FolioNumber

如果我只想要一种交易类型但我想要 3 种不同的交易类型,则以下代码确实有效

---working code
SELECT FolioNumber,
       SUM(debitTransactions) as gst 
FROM HISTTRN 
WHERE transactionType = 106

GROUP BY FolioNumber
ORDER BY FolioNumber

有没有办法做到这一点?谢谢

SELECT FolioNumber,
       SUM(case when transactionType = 106 then debitTransactions else 0 end) as gst,
       SUM(case when transactionType = 105 then debitTransactions else 0 end) as levy,
       SUM(case when transactionType = 100 then debitTransactions else 0 end) as roomRevenue
FROM HISTTRN 
GROUP BY FolioNumber
ORDER BY FolioNumber