2017-03-08 8 views
0

私はピボット機能を使用しようとしていますが、隔週表の文字を照会結果ではなく人名に置き換える方法がわかりません。ここに私の質問です。SQL Pivotをテーブルに適用する最も良い方法は何ですか?

SELECT a.OCD, a.[f_name],a.[l_name],a.[ads_phone], b.wk1m, b.wk1t, b.wk1w, b.wk1r, b.wk1f, b.wk2m, b.wk2t, b.wk2w, b.wk2r, b.wk2f 
FROM [dbo].[tbl_teleworkers] as a 
inner join [dbo].[tbl_scheduled] as b ON a.pin = b.pin 
where ocd = '022' 

here is my result: 
OCD|f_name|l_name|ads_phone|wk1m|wk1t|wk1w|wk1r|wk1f|wk2m|wk2t|wk2w|wk2r|wk2f 
022|John |smith |111-1111 |M | | | R | | | | | | 
022|Jane |smith |222-2222 | | | | | | | | W | | 
022|Joe |smith |333-3333 |M | | | | F | | | | | 
022|Jim |smith |444-4444 | | T | | | | M | | | | 
022|Jill |smith |555-5555 |M | | W | | | | | | R | 

Here is what I'm looking to get: So instead of the letters of the week. I'm trying to display the person's name and phone number. 
wk1m |wk1t|wk1w|wk1r |wk1f|wk2m|wk2t|wk2w |wk2r|wk2f 
John | | |John | | | |  | | 
phone| | |phone| | | |  | | 
    | | |  | | | |Jane S| | 
    | | |  | | | |phone | | 
Joe | | 
phone| | 

ご協力いただければ幸いです。 ありがとう!

答えて

1

サンプルデータと出力にPIVOTがまったく必要ないため、件名の質問を無視します。

各列をCASE式にすることで、目的の出力を得ることができます。各wk**列で、値が空でない場合は、ファーストネーム、最後のイニシャル(必要な場合)、および電話番号を連結した値を返します。

+0

ありがとうございます!あなたが正しい!私はちょうどそれを思っていたと思う。 – xicano66

関連する問題