2016-12-29 93 views
1

我有一個數據庫表中,看起來像這樣:SQL Server 2008中,樞軸沒有骨料機能的研究

product||installed/removed||date 
     A||    1||Jan 1, 2016 
     A||    0||Mar 16, 2016 
     A||    1||May 15, 2016 
     B||    1||Feb 3, 2016 
     C||    0||Nov 15, 2015 
     D||    1||Dec 4, 2015 

安裝/移除被去除的標誌,這意味着1 =安裝,0 =。

我想使它看起來像這樣:

Product||   1|| 0 
     A|| Jan 1 2016 || Mar 16, 2016 
     A|| May 152016 || NULL 
     B|| Feb 3 2016 || NULL 
     C||  NULL || Nov 15, 2015 
     D|| DEC 4 ,2015|| NUll 

但使用最大值/最小值不會讓我顯示的數據這樣...

+0

顯示查詢使用「使用最大/最小」不會導致所需的結果。 – user2864740

回答

2

使用PIVOTROW_NUMBER(),就可以解決這,

DECLARE @TABLE TABLE 
( product NVARCHAR(100) 
    ,in_rem tinyint 
    ,[date] date  
) 

INSERT INTO @TABLE 
VALUES ('A',1,'Jan 1, 2016'),('A',0,'Mar 16, 2016'),('A',1,'May 15, 2016'), 
     ('B',1,'Feb 3, 2016'),('C',0,'Nov 15, 2015'),('D',1,'Dec 4, 2015') 

SELECT product,[1],[0] 
FROM ( SELECT * 
        ,ROW_NUMBER() OVER(PARTITION BY in_rem ORDER BY product,[date]) AS [ROW_NO] 
      FROM @TABLE 
     ) AS T 
PIVOT (MIN([date]) FOR in_rem IN ([1],[0]))PVT 
ORDER BY product