開発しようとしているクエリに小さな課題があります。
これが私のテーブルの様子です:-
勘定科目表
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
基本的に、クライアントごとに多数のアカウントが存在する可能性があるため、クライアントはアカウントテーブルに何度も存在する可能性があります。
アカウントの種類は常に同じ文字で始まりますが、これらのアカウントの数に応じて、実際の数は何でもかまいません。後続のアカウントは常に10進数で、次に数字になります...たとえば、最初の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
* WHERE句が2つある理由は、SUP1と同じではないSUP12のようなアカウントがあるため、SUP1%だけを使用できないためです。
このクエリは正常に機能しますが、アカウントタイプがSUPのリストのみを生成します。アカウントタイプごとに複数の列にわたって同じ種類の出力を生成するにはどうすればよいですか?
Microsoft SQL2008R2を使用しています