Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中透视非数字数据表_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

在SQL Server中透视非数字数据表

在SQL Server中透视非数字数据表,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我对SQL Server相当陌生。我试图将此表的轴转到零件号,以便行和列可以互换。请注意,Part\u Number是如何重复的,IBA\u NAME列具有所有属性 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 -

我对SQL Server相当陌生。我试图将此表的轴转到
零件号
,以便行和列可以互换。请注意,
Part\u Number
是如何重复的,
IBA\u NAME
列具有所有属性

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\u NAME
进行克隆化:

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

谁能概述一下我做错了什么,以及我如何解决这个问题。非常感谢您的帮助:)

这正是您想要的,只需删除您不需要的数据透视列,因为我刚刚做了一个快速而肮脏的操作,并在IBA_名称中包含了所有值:

样本数据:

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','-')
查询:

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;
结果:


您的预期输出是什么?请将其作为文本表发布,并添加列,说明我希望如何获取数据。