最初にオフにしてください、これを見ていただきありがとうございます。Transact-SQL Selectクエリ重複値を与える
私は3つのテーブルからデータを収集し、エンドユーザーが格納されたデータを見ることを可能にする参照チャートを作成しようとしています。 USERS:
は基本的に私は、この例の3つのテーブルを持っている
USER_PK USER_ID USER_NAME
1 10000 Bob
2 10001 Sally
3 10003 Joe
4 10004 Susan
SKILL_TYPE:
SKILL_PK SKILL_NAME
11 Point of Sale
22 Digital Sales
33 Customer Service
44 Specialist Support
SKILL_ASSOCIATION:
SKILL_ASSOC_PK SKILL_PK USER_PK START_DATE STOP_DATE Priority
99 11 1 36526 500000 2
88 11 2 36527 500000 3
77 22 1 36526 500000 3
66 33 3 36528 500000 1
55 44 4 36525 500000 1
444 33 4 36525 500000 4
は(私が知っている私はおそらく壊れてきたいくつかのこのデータをカタログ化したルールSQL Expressでやったのですが、これは唯一の例です私が使っている実際のデータの十分ではなく代表)
マイセレクトクエリは、ユーザーごとに複数の行で、不要な結果を返します: 声明:
SELECT USERS.[USER_NAME], USERS.[USER_ID],
(CASE WHEN ST.SKILL_NAME ='Point of Sale' Then SA.[PRIORITY] END) AS 'POS',
(CASE WHEN ST.SKILL_NAME ='Digital Sales' Then SA.[PRIORITY] END) AS 'DS',
(CASE WHEN ST.SKILL_NAME ='Customer Service' Then SA.[PRIORITY] END) AS 'CS',
(CASE WHEN ST.SKILL_NAME ='Specialist Support' Then SA.[PRIORITY] END) AS 'Spec'
FROM USERS
INNER JOIN [dbo].[SKILL_ASSOCIATION] AS SA ON SA.USER_PK = USERS.USER_PK
INNER JOIN SKILL_TYPE AS ST ON ST.SKILL_PK = SA.SKILL_PK
結果:
USER_NAME USER_ID POS DS CS Spec
Bob 10000 2 NULL NULL NULL
Sally 10001 3 NULL NULL NULL
Bob 10000 NULL 3 NULL NULL
Joe 10003 NULL NULL 1 NULL
Susan 10004 NULL NULL NULL 1
Susan 10004 NULL NULL 4 NULL
をI同様の結果を持つ別個のものも使用しようとしました。 望ましい結果:
NAME ID POS DS CS Spec
Bob 1 2 3
Sally 2 3
Joe 1
Susan 4 1
私は、このSQL Serverとの非常に限られたクエリのアクセス権を持ち、作成/変更、または私の目的を達成するために、そこから削除することはできません。
ガイダンスをいただければ幸いです。
おかげで、 スティーブン
はあなたにヨーゲッシュシャルマをありがとうございました!書式設定を理解できませんでした。 –