2016-05-04 18 views
-2

私はまれにSQLサーバーにPIVOTを使用しますが、今はPIVOTを使用する必要があります。これはピボットを使用したい単一の列です。SQL Serverのピボット2014

私のテーブル構造は一例

Branch Date   Amt1 Amt2  Amt3 
LHE  2016-05-02  155869 255878 -100009 
LHE  2016-05-03  9270 124159 -114889 
LHE  2016-05-04  95556 95556   0 
FSD  2016-05-02  155869 255878 -100009 
FSD  2016-05-03  9270 124159 -114889 
FSD  2016-05-04  95556 95556   0 

ためのもののようですが、私はこのフォーマット、私はこれを取得する方法

   LHE  LHE  LHE  FSD  FSD  FSD 
Date   Amt1 Amt2  Amt3  Amt1  Amt2  Amt3 
2016-05-02  155869 255878 -100009 155869 255878 -100009 
2016-05-03  9270 124159 -114889 9270  124159 -114889 
2016-05-04  95556 95556  0  95556  95556  0 

になりたいですか?

+0

思考のための食べ物:ボランティアは、「私はこれを実現したい」と追加すると援助を拒否することがあります。 – halfer

答えて

0

EDIT:あなたはピボットを使用するために必要なことを認識していませんでした。私はまだ以下の解決策が良いと思っています。

これがすべてのデータであれば、以下のようにすることができます。

**テストデータ

CREATE TABLE #TableName (Branch varchar(3), Date datetime, Amt1 int, Amt2 int, Amt3 int) 
INSERT INTO #TableName 
VALUES 
('LHE','2016-05-02','155869','255878','-100009') 
,('LHE','2016-05-03','9270','124159','-114889') 
,('LHE','2016-05-04','95556','95556','0') 
,('FSD','2016-05-02','155869','255878','-100009') 
,('FSD','2016-05-03','9270','124159','-114889') 
,('FSD','2016-05-04','95556','95556','0') 

サブセレクトFSD用とクエリ。

SELECT 
a.Date 
,a.Amt1 LHE_Amt1 
,a.Amt2 LHE_Amt2 
,a.Amt3 LHE_Amt3 
,b.Amt1 FSD_Amt1 
,b.Amt2 FSD_Amt2 
,b.Amt3 FSD_Amt3 
FROM #TableName a 
JOIN (SELECT Date, Amt1, Amt2, Amt3 FROM #TableName WHERE Branch = 'FSD') b 
ON a.date = b.date 
WHERE a.Branch = 'LHE' 

結果;

Date      LHE_Amt1 LHE_Amt2 LHE_Amt3 FSD_Amt1 FSD_Amt2 FSD_Amt3 
2016-05-02 00:00:00.000  155869  255878  -100009  155869  255878  -100009 
2016-05-03 00:00:00.000  9270  124159  -114889  9270  124159  -114889 
2016-05-04 00:00:00.000  95556  95556  0   95556  95556  0 
+0

あなたのソリューションはより少ないブランチで正確ですが、私はレコードを取得するために私のクエリを共有していますので、これに応じて適切なソリューションを追加してください。 –