2017-11-19 18 views
0

は、これはこれは私が行うことができます私の質問です...出力ヘッダにピボットテーブルの概念

Doctor Professsor singer  Actor 
----------------------------------------------- 
Aamina Ashley Christeen Eve 

Julia Belvet Jane   Jennifer 

Priya Britney Jenny   Ketty 

NULL Maria Kristeen  Samantha 

NULL Meera NULL   NULL 

NULL Naomi NULL   NULL 

Name  Occupation 
---------------------- 
Ashley Professor 

Samantha Actor 

Julia  Doctor 

Britney Professor 

Maria  Professor 

Meera  Professor 

Priya  Doctor 

Priyanka Professor 

Jennifer Actor 

Ketty Actor 
. 
. 
. 

Christeen Singer 

Eve Actor 

Aamina Doctor 

OUTPUT、すなわち医師、歌手、表示すべきではありません 私のテーブル入力ですそれはケースステートメントを使用しています。しかし、スクリプトは長くかかりました。だから誰かがSQL Serverでピボットの概念を使って出力を表示するのを助ける

+0

あなたがあなたの質問にしようとしたSQLを追加します。 –

+0

はい、私は試みましたが、私はピボットの概念を使用する方法を知らない。私はGoogleで検索しても、YouTubeには完璧な例はありません。ヘッダーなしの出力を取得する –

+0

あなたはスクリプトを試したことに言及しました。たとえ間違っていたとしても、それをあなたの質問に加えて、私たちがあなたを助けることができるようにしてください。 –

答えて

0

私はこれがあなたが欲しいものだと思う。私は4つの共通テーブル式(CTE)を使用して各職種の名前を取得しました。私は名前を注文し、各名前にIdを割り当てるために各CTEにwindows関数を持っています。私はすべてのCTEにIdで参加し、あなたの結果があります。

WITH doctor AS (
SELECT ROW_NUMBER() OVER(PARTITION BY Occupation 
        ORDER BY [Name]) AS Id,[Name],Occupation 
FROM your_Table 
WHERE Occupation = 'Doctor'), 

professor AS (
SELECT ROW_NUMBER() OVER(PARTITION BY Occupation 
        ORDER BY [Name]) AS Id,[Name],Occupation 
FROM your_Table 
WHERE Occupation = 'Professor'), 

singer AS (
SELECT ROW_NUMBER() OVER(PARTITION BY Occupation 
        ORDER BY [Name]) AS Id,[Name],Occupation 
FROM your_Table 
WHERE Occupation = 'Singer'), 

actor AS (
SELECT ROW_NUMBER() OVER(PARTITION BY Occupation 
        ORDER BY [Name]) AS Id,[Name],Occupation 
FROM your_Table 
WHERE Occupation = 'Actor') 

SELECT d.Name AS 'Doctor',p.Name AS 'Professor', 
     s.Name AS 'Singer',a.Name AS 'Actor' 
FROM doctor d 
    FULL OUTER JOIN professor p ON d.Id = p.Id 
    FULL OUTER JOIN singer s ON p.Id = s.Id 
    FULL OUTER JOIN actor a ON s.Id = a.Id 

結果:

+--------+-----------+-----------+----------+ 
| Doctor | Professor | Singer | Actor | 
+--------+-----------+-----------+----------+ 
| Aamina | Ashley | Christeen | Eve  | 
| Julia | Belvet | Jane  | Jennifer | 
| Priya | Britney | Jenny  | Ketty | 
| NULL | Maria  | Kristeen | Samantha | 
| NULL | Meera  | NULL  | NULL  | 
| NULL | Naomi  | NULL  | NULL  | 
| NULL | Priyanka | NULL  | NULL  | 
+--------+-----------+-----------+----------+