LINQ与Group By和rownum

时间:2013-09-13 09:30:29

标签: c# linq oracle

我有一个类似下面的Oracle SQL查询,并希望LINQ等于。

SELECT ROWNUM rn, 
       tmp.* 
FROM   (SELECT tbl.name, 
               SUM(tbl.debit) 
        FROM   table1 tbl 
        GROUP  BY tbl.name) 

非常感谢

2 个答案:

答案 0 :(得分:0)

我认为你可以使用index使用Select的重载来做类似的事情。

此处,rn代表此index,即......行号。

var result = <someWayToGetTable1>.GroupBy(m => m.Name)
.Select(m => new {
   name = m.Key,
   allDebit = m.Sum(x => x.debit),
})
.ToList()
.Select((m, rn) => new {
    m.name,
    m.allDebit,
    rn
});

版本,部分语言不流畅

 var queryable= from item in <Table1>
                 group item by item.name into g
                 select new {
                    name =m.Key,
                    allDebit = m.Sum(x => x.debit
                 }
   var result = queryable.ToList()
                 .Select((g, rn) => new {
                      g.name,
                      g.allDebit
                      rn
                  });

答案 1 :(得分:0)

我想你想要这样的东西:

YourDataContext.tbls.GroupBy(a => a.name)
.select((a, index) => new
{
    rn = index,
    name = a.Key,
    debitSum = a.Sum(b => b.debit)
});