我正在尝试开发的查询遇到一个小挑战。
这是我的桌子的样子:-
帐户表
ClientNo AccountType Balance
1234 SUP1 25
1234 SUP1.1 35
1234 RET1 20
1111 SUP1 50
1111 DIS4 60
我正在尝试得到如下所示的结果:-
ClientNo TotSupBal TotSuppAccts TotRetBal TotRetAccts TotDisBal TotDisAccts
1234 70 2 20 1 0 0
1111 50 1 0 0 60 1
本质上,一个客户可以多次出现在 Accounts 表中,因为每个客户可以有多个帐户。
帐户类型将始终以相同的字符开头,但是取决于这些帐户中有多少,该数字实际上可以是任何数字,并且后续帐户将始终是十进制然后是数字...例如,第一个 SUP 帐户只是 SUP1,但是下一个 SUP 帐户将是 SUP1.1,然后是 SUP1.2 等...
我写了以下查询
SELECT ClientNo, SUM(Balance) AS TotSupBal, COUNT(AccountType) AS TotSuppAccts
FROM Account
WHERE (AccountType LIKE 'SUP1.%') OR (AccountType = 'SUP1')
GROUP BY ClientNo
*有 2 个不同的 WHERE 子句的原因是因为我不能只使用 SUP1%,因为有像 SUP12 这样的帐户与 SUP1 不同。
此查询工作正常,但它只生成 SUP 帐户类型的列表。我怎样才能产生相同类型的输出,但是在每个帐户类型的多个列中?
我正在使用 Microsoft SQL 2008 R2