我對我正在嘗試開發的查詢有一個小挑戰。SQL - 查詢困難 - 將多行整列成列
這裏是我的表是什麼樣子: -
賬表
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
本質上客戶端可以多次進入帳戶表,因爲每個客戶端可以有多個帳戶。
賬戶類型總是以相同的字符開始,但取決於這些賬戶中有多少賬戶可以是真正的任何賬戶,並且隨後的賬戶將永遠是一個騙子,然後是一個數字......例如,第一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