2013-08-03 39 views
-2
Type major minor build module 
---- ----- ----- ----- ----- 
290 0  0  1  Name1 
290 1  0  1  Name1 
290 1  0  2  Name1 
300 0  0  1  Name2 
300 2  0  1  Name2 
300 2  1  1  Name2 

我一直在試圖讓一個查詢只顯示最高版本的行,每個類型的基礎上,三列(major.minor.build)。模塊名稱將替換模塊類型。最高行的基礎上,三列,每組

根據樣本數據的結果應該是:

Type major minor build module 
---- ----- ----- ----- ------ 
290  1  0  2  Name1 
300  2  1  1  Name2 
+0

問題是獲得最高的每種類型。 –

回答

0

這應做到:

SELECT TOP 1 * FROM myTable ORDER BY major DESC, minor DESC, build DESC 
+0

對此+1,因爲_對於每個type_稍後添加 –

4

爲了獲得最高的爲每一種類型,您可以查詢例如如:

;with cte as (
    select Type, major, minor, build, module 
     rn = row_number() over (partition by Type 
      order by major desc, minor desc, build desc) 
    from TableName 
) 
select Type, major, minor, build, module 
from cte 
where rn=1 
+0

第三行末尾是否應該有另一個括號? –

+0

@ mythago.wolf是的,已更正。這是不妨礙使用適當的回車並避免水平滾動的風險之一。 –

+0

@ mythago.wolf,對,我似乎沒有遵循規則_type同時括號,然後鍵入between_。謝謝亞倫的改正。 –