2013-11-27 74 views
0

我正在嘗試對數據表進行組排序。截至目前我有像數據:根據行中的結果對數據表中的組排序

 
+-------+-----+--------+ 
| rowno | mno | result | 
+-------+-----+--------+ 
|  1 | 80 |  20 | 
|  1 | 81 |  10 | 
|  1 | 82 |  30 | 
|  2 | 80 |  40 | 
|  2 | 81 |  50 | 
|  2 | 82 |  60 | 
|  3 | 80 |  70 | 
|  3 | 81 |  60 | 
|  3 | 82 |  50 | 
+-------+-----+--------+ 

按要求,我將選擇特定MNO,可以說81,然後根據其結果爲81,即10,50和60,我想按降序排列整個組。這意味着結果會是這樣的:

 
+-------+-----+--------+ 
| rowno | mno | result | 
+-------+-----+--------+ 
|  3 | 80 |  70 | 
|  3 | 81 |  60 | 
|  3 | 82 |  50 | 
|  2 | 80 |  40 | 
|  2 | 81 |  50 | 
|  2 | 82 |  60 | 
|  1 | 80 |  20 | 
|  1 | 81 |  10 | 
|  1 | 82 |  30 | 
+-------+-----+--------+ 

我有整套的DataTable,並正在考慮將LINQ到解決這一之一。或者,如果可以建議SQL查詢也可以。

+0

你能顯示錶的輸入和輸出格式結構體? – Mari

+0

我是新來的SO,所以我現在能夠在表格結構中看到結果 – user2519001

回答

0

試試這個

SELECT rowno,mno,result from your_table 
    order by rowno desc 
+0

你錯過了','在你的回答中 –

+0

分組被這個查詢干擾了。此外,沒有規定選擇一個特定的mno價值,根據你需要做整個組排序 – user2519001

+0

感謝維傑..我剛剛編輯。你有沒有試過這個 – Mari

0

使用LINQ到數據集(dt是你DataTable):

var sorted = dt.AsEnumerable() 
       .OrderByDescending(r => r.Field<int>("rowno")) 
       .CopyToDataTable(); 

沒有LINQ:

var view = dt.DefaultView; 
view.Sort = "rowno DESC"; 
var sorted = view.ToTable(); 
+0

我只是不想按降序對整個數據表進行排序。我想要的是:對於特定的mno值,例如82,結果是20,15,30對應於rowno 1,2,3。然後在最後的結果中,rowno 2的結果應該先出現,然後用rowno 1出現,最後用rowno 3.我認爲我現在更清楚了。整個團隊將保持這樣的狀態,只是整個團隊會改變他們的位置。 – user2519001

相關問題