SQL PIVOT查询不起作用

时间:2018-07-17 18:45:18

标签: sql sql-server pivot union

我正在尝试在此查询中使用分组依据,并将结果合并为1行而不是5行,并删除空值。需要做哪些更改? 以下代码的结果是附件的output of following code图片 expected output- need this output of source table p before pivot

      select    datetime,dc_grp,disp,inst_id,oper,review,var,reqt_id, 
               [ITEM_NO],[MOLD_NO],[DEFECT],[DISPOSITION],[MISSING_PCS], 
               [DEPARTMENT] 
   FROM
   (
        SELECT TOP (10000) I.[dc_grp]
              ,I.[inst_id]
              ,I.[datetime]
              ,I.[serial]
              ,I.[oper]
              ,I.[review]
                 ,R.REQT_ID
                 ,reqt.reqt_name
                 ,R.DISP
                 ,R.VAR
                 ,R.ATTR
                 --,R.DATETIME       
          FROM [Data_Warehouse].[plant].[VW_IPC_INSTANCE] I
          ,[Data_Warehouse].[plant].[VW_IPC_DC_GRP] GRP
            ,[Data_Warehouse].[plant].[VW_IPC_RESULTS] R
                   ,[Data_Warehouse].[plant].[VW_IPC_Reqt] Reqt
          where
        i.dc_grp like '%MOLD INSPECTION%'
          AND I.DC_GRP = GRP.DC_GRP
          AND I.INST_ID = R.INST_ID
          and r.reqt_id = reqt.reqt_id
          and i.datetime = '2017-07-18 01:17:40.000'
        order by I.datetime desc
  ) p

  PIVOT 
 (
   max(ATTR) FOR reqt_name in 
 (  
     [ITEM_NO] ,[MOLD_NO] ,[DEFECT] ,
     [DISPOSITION],[MISSING_PCS],[DEPARTMENT]
 )
 ) as pvt
   order by datetime 

1 个答案:

答案 0 :(得分:0)

根据我们对问题的评论中的讨论...

您需要做的就是从两个查询中删除reqt_id字段。