首页 新闻 搜索 专区 学院

求一个linq

0
悬赏园豆:10 [已解决问题] 解决于 2013-08-27 17:54

表table:  fid value1, sid, value2

fid和sid都是同一个表的外键

不用concat 如何查询出结果:

new {
    id = 13,
    value = 999
}

相当于:

fid, value1
sid, value2

名字已被占用的主页 名字已被占用 | 初学一级 | 园豆:41
提问于:2013-08-20 14:45
< >
分享
最佳答案
0

思路:

先取fid,value1,得到list1;

再取sid,value2,得到list2;

然后将list2 加到list1 里面,得到list1;

在list1中根据ID分组,用聚合函数得到value,即可。

收获园豆:10
jone_e | 小虾三级 |园豆:1410 | 2013-08-20 16:20

现在我是这样做的,数据多了就好慢,不只是这两个字段, 有7,8个类似fid,要list.concat()7,8次

名字已被占用 | 园豆:41 (初学一级) | 2013-08-20 18:23

@然然爹的记忆: 这样啊,那你就用procedure吧,会快一些。

jone_e | 园豆:1410 (小虾三级) | 2013-08-20 18:55
其他回答(1)
0

这要基于Entity Framework中映射关系的定义

dudu | 园豆:38237 (高人七级) | 2013-08-20 15:22

我是用的ef

表里面的记录是

fid value1, sid, value2
13    99     14    5
13    47     15    2

 

现在要生成报表
id      value
13, (99+47)
14,   5
15,   2

支持(0) 反对(0) 名字已被占用 | 园豆:41 (初学一级) | 2013-08-20 15:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册