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
我之前没有 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