dia*_*ond 4 c# asp.net linq-to-sql
我有一张这样的桌子
StudID Date I II III IV V VI VII VIII
--------------------------------------------------------------
100 2-10-11 T T F F F F F T
101 2-10-11 T T T F F F F T
100 3-10-11 T F F F F F F T
100 4-10-11 T F F F F F F T
Run Code Online (Sandbox Code Playgroud)
现在我需要得到T的数量,即特定学生在特定月份的表中的真实数量.StudID是varchar字段Date是日期时间字段,所有其他数据类型是bit
有任何想法吗?
正如评论所示,您应该规范化您的数据.
但是,如果您无法做到这一点,您只需要计算每行中的trues数.
context.Studs.Sum(s => (s.I ? 1 : 0) + (s.II ? 1 : 0) + ... + (s.VIII ? 1 : 0));
Run Code Online (Sandbox Code Playgroud)
编辑:要根据StudID和月限制总和,您可以使用Where运算符
var id = "100";
var month = 10;
var set = context.Studs.Where(s => s.StudID == id;
set = set.Where(s => s.Date.Month == month);
return set.Sum(s => (s.I ? 1 : 0) + (s.II ? 1 : 0) + ... + (s.VIII ? 1 : 0));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |