0
我有一个查询已经摆动了与交易数据有关的数据。我有一张包含客户号码,交易类型和交易金额的表格。SQL查询中的第二个数据透视表
我最初的查询返回了每个客户按事务类型分解的事务总数。它是如下:
;WITH query AS
(
SELECT customernum,[Cash],[Card]
FROM (
transactions
)
AS source
PIVOT
(
COUNT(TransType) FOR TransType IN ([Cash],[Card])
)
AS pvt
) SELECT customernum AS 'Customer Number', SUM([Cash]) AS 'Cash Transactions',
SUM([Card]) AS 'Card Transactions' FROM query
GROUP BY customernum
ORDER BY customernum
我现在需要将总值添加到查询,但仍按事务类型细分。
例如,从表 '交易' 的样本数据是:
╔═════════════╦═══════════╦════════╗ ║ CustomerNum ║ TransType ║ Amount ║ ╠═════════════╬═══════════╬════════╣ ║ 111 ║ Cash ║ 5 ║ ║ 111 ║ Card ║ 5 ║ ║ 111 ║ Cash ║ 5 ║ ║ 111 ║ Cash ║ 5 ║ ║ 111 ║ Card ║ 5 ║ ║ 222 ║ Card ║ 5 ║ ║ 222 ║ Cash ║ 5 ║ ║ 222 ║ Card ║ 5 ║ ║ 333 ║ Cash ║ 5 ║ ║ 333 ║ Cash ║ 5 ║ ║ 333 ║ Cash ║ 5 ║ ╚═════════════╩═══════════╩════════╝
我原来的查询是产生这样的结果:
╔═════════════╦══════╦══════╗ ║ CustomerNum ║ Cash ║ Card ║ ╠═════════════╬══════╬══════╣ ║ 111 ║ 3 ║ 2 ║ ║ 222 ║ 1 ║ 2 ║ ║ 333 ║ 3 ║ 0 ║ ╚═════════════╩══════╩══════╝
我现在就需要回到这样的:
╔═════════════╦══════╦═════════════╦══════╦═════════════╗ ║ CustomerNum ║ Cash ║ Cash Amount ║ Card ║ Card Amount ║ ╠═════════════╬══════╬═════════════╬══════╬═════════════╣ ║ 111 ║ 3 ║ 15 ║ 2 ║ 10 ║ ║ 222 ║ 1 ║ 5 ║ 2 ║ 10 ║ ║ 333 ║ 3 ║ 15 ║ 0 ║ 0 ║ ╚═════════════╩══════╩═════════════╩══════╩═════════════╝