我有一个包含以下数据的数据表。
Week Score Rank
1 75.8300000000 1
2 76.6800000000 9
3 79.8787870000 4
4 0 0
5 0 0
6 0 0
7 0 0
...
53 0 0
如果数据表只有前 3 周(有 Rank 的周),那么以下行将完美运行。但是现在我需要添加一个 WHERE 子句来获取 MAX(Week),其中 Score 大于 0。在这种情况下,返回的行将是第 3 周。本质上,查询将是 SELECT max(week) From datatable 其中排名 > 0
DataRow[] dr = dsRanks.Tables[0].Select("Week = MAX(Week)");
我尝试了以下操作,但由于返回了 0 行,所以出现索引错误。
DataRow[] dr = dsRanks.Tables[0].Select("Week = MAX(Week) and Rank > 0");
感谢任何帮助。
谢谢。
最佳答案
使用 LINQ 更容易解决:
var week = dsRansk.Tables[0].AsEnumerable()
.Where(row => row.Field<int>("Rank") > 0)
.Max(row => row.Field<int>("Week"));
关于c# - Datatable.Select with max(col) 和 WHERE 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21588799/