2017-01-26 4 views
1

私はSQL Serverが新しくなっています。私はPart_Numberにこのテーブルをピボットしようとしているので、行と列が入れ替えられます。 Part_Numberがどのように繰り返され、IBA_NAME列がすべてのプロパティを持っているかに注目してください。ピボットa SQL Serverで数値以外のデータテーブル

PART_NUMBER IBA_NAME PART_REVISION PART_ITERATION PART_NAME IBAVALUE 
161-83516-0014-M00 SPEED_GRADE A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 JEDEC_TYPE A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 NV_LEAD_TIME A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 VOLUME A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 POW A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 LIBRARY A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS N/A 
161-83516-0014-M00 Valid_To A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS 1111-11-11 00:00:00 
161-83516-0014-M00 NV_COSTS A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 ZZ_Item_Type A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS Part: Mem (Concept) 
161-83516-0014-M00 NV_PREFERENCE A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS 0 
161-83516-0014-M00 SPARE A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS ROHS, PROMOS 
161-83516-0014-M00 HEIGHT A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 NAME A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 PACK_TYPE A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 QUALIFIER A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 PTF_NAME A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 Parts A 3 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS Part: Mem (Concept) 
161-83516-0014-M00 SPEED_GRADE A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 JEDEC_TYPE A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 NV_LEAD_TIME A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 VOLUME A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 POW A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 LIBRARY A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS N/A 
161-83516-0014-M00 Valid_To A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS 1111-11-11 00:00:00 
161-83516-0014-M00 NV_COSTS A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 ZZ_Item_Type A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS Part: Mem (Concept) 
161-83516-0014-M00 NV_PREFERENCE A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS 0 
161-83516-0014-M00 SPARE A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS ROHS, PROMOS 
161-83516-0014-M00 HEIGHT A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 NAME A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 PACK_TYPE A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 QUALIFIER A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 PTF_NAME A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 
161-83516-0014-M00 Parts A 4 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS Part: Mem (Concept) 
161-83516-0014-M00 SPEED_GRADE A 5 MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS - 

私は、データが次のようになりたい - IBA_NAMEに基づいてcoloumnized:

PART_NUMBER NAME PACK_TYPE QUALIFIER PTF_NAME SPEED_GRADE JEDEC_TYPE NV_LEAD_TIME VOLUME POW LIBRARY 

これまでのところ、私は以下のコードを書くことが、無駄にしようとした:

SELECT TOP (1000) 
    [PART_NUMBER], 
    [PART_NAME], [PART_REVISION], [PART_ITERATION] 
FROM 
    [PDPDATAMART].[dbo].[BI_PDP_partclass_d] 
PIVOT 
    (MIN([VALUE]) 
      FOR [PART_NUMBER] IN ([PART_NAME]) 
    ) AS p 

ことができます誰かの概要、私が間違っていること、そして問題をどのように解決できるかを説明します。ヘルプをいただければ幸いです:)これはあなたが望むものである

+1

期待される出力は? – GurV

+0

私はデータをどのようにしたいのかに関する列を追加しました。 – Shashank

答えて

0

、ちょうどあなたが、私はちょうど迅速かつ汚れを行なったし、IBA_NAMEのすべての値含まれる必要がいけないピボット列削除:

サンプルデータ:

IF OBJECT_ID('tempdb..#temp') IS NOT NULL 
    DROP TABLE #temp; 

CREATE TABLE #temp(PART_NUMBER VARCHAR(50) 
       , IBA_NAME  VARCHAR(50) 
       , PART_REVISION VARCHAR(50) 
       , PART_ITERATION VARCHAR(50) 
       , PART_NAME  VARCHAR(50) 
       , IBAVALUE  VARCHAR(50)); 

INSERT INTO #temp 
VALUES 
('161-83516-0014-M00','SPEED_GRADE','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','JEDEC_TYPE','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','NV_LEAD_TIME','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','VOLUME','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','POW','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','LIBRARY','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','N/A'), 
('161-83516-0014-M00','Valid_To','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','1111-11-11 00:00:00'), 
('161-83516-0014-M00','NV_COSTS','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','ZZ_Item_Type','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','Part: Mem (Concept)'), 
('161-83516-0014-M00','NV_PREFERENCE','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','0'), 
('161-83516-0014-M00','SPARE','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','ROHS, PROMOS'), 
('161-83516-0014-M00','HEIGHT','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','NAME','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','PACK_TYPE','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','QUALIFIER','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','PTF_NAME','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','Parts','A',3,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','Part: Mem (Concept)'), 
('161-83516-0014-M00','SPEED_GRADE','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','JEDEC_TYPE','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','NV_LEAD_TIME','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','VOLUME','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','POW','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','LIBRARY','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','N/A'), 
('161-83516-0014-M00','Valid_To','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','1111-11-11 00:00:00'), 
('161-83516-0014-M00','NV_COSTS','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','ZZ_Item_Type','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','Part: Mem (Concept)'), 
('161-83516-0014-M00','NV_PREFERENCE','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','0'), 
('161-83516-0014-M00','SPARE','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','ROHS, PROMOS'), 
('161-83516-0014-M00','HEIGHT','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','NAME','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','PACK_TYPE','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','QUALIFIER','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','PTF_NAME','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-'), 
('161-83516-0014-M00','Parts','A',4,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','Part: Mem (Concept)'), 
('161-83516-0014-M00','SPEED_GRADE','A',5,'MEM 32MX16 DDR2-533 266MHz 1.8V FBGA-84 PROMOS','-') 

QUERY:

SELECT [PART_NAME] 
    , [PART_REVISION] 
    , [PART_ITERATION] 
    , [SPEED_GRADE] 
    , [JEDEC_TYPE] 
    , [NV_LEAD_TIME] 
    , [VOLUME] 
    , [POW] 
    , [LIBRARY] 
    , [Valid_To] 
    , [NV_COSTS] 
    , [ZZ_Item_Type] 
    , [NV_PREFERENCE] 
    , [SPARE] 
    , [HEIGHT] 
    , [NAME] 
    , [PACK_TYPE] 
    , [QUALIFIER] 
    , [PTF_NAME] 
    , [Parts] 
FROM 
     (SELECT * 
     FROM #temp) AS SourceTable PIVOT(MIN(IBAVALUE) FOR IBA_NAME IN([SPEED_GRADE] 
                 , [JEDEC_TYPE] 
                 , [NV_LEAD_TIME] 
                 , [VOLUME] 
                 , [POW] 
                 , [LIBRARY] 
                 , [Valid_To] 
                 , [NV_COSTS] 
                 , [ZZ_Item_Type] 
                 , [NV_PREFERENCE] 
                 , [SPARE] 
                 , [HEIGHT] 
                 , [NAME] 
                 , [PACK_TYPE] 
                 , [QUALIFIER] 
                 , [PTF_NAME] 
                 , [Parts])) AS PivotTable; 

結果:

enter image description here

関連する問題