2017-07-30 121 views
0

你能告訴我如何做到這一點嗎?如何在SQL Server中使用Pivot獲取最新記錄?

ColumnName- 1.ID  2.attribute_name 3.attribute_value 4.Date 
      1   attr1    val1   28-07-2017 
      1   attr1    val2   29-07-2017 Latest record 
      2   attr1    val1   28-07-2017  
      2   attr2    val2   29-07-2017 Latest record 
      2   attr2    val3   30-07-2017  
      3   attr1    val1   30-07-2017 Latest record 

和輸出應該像下面,

ID attribute_name attribute_value 
1  attr1   val2 
2  attr1   val1 
2  attr2   val3 
3  attr1   val1 

只有我需要最新值對於每個屬性各自與ID &日期。

+1

帖子原支點查詢做過濾。我們可以在源碼本身進行過濾 –

+0

McGrady的輸出是否正確?你標記樞軸點,但是這表明沒有關鍵點。之前有人說過,我贊成麥格雷迪把一個完全不可讀的問題轉化爲有意義的東西! –

+0

@JonathanWillcock - 我猜樣本數據是一個'pivot'查詢的結果 –

回答

1

這可以通過使用Row_Number

Select * from 
(
select *,Row_NUmber()Over(Partition by ID, attribute_name order by [Date] desc) as Rn 
From yourtable 
) a 
Where Rn = 1 

做,但正如我在評論中提到如果您發佈的原始支點的查詢,我們可以在源本身