34,873
社区成员
发帖
与我相关
我的任务
分享
var result1 = from a in t.T_BaseBookInfo
join b in t.T_BorrowInfoHsty //表
on a.GUID equals b.BookID
join c in t.T_BaseBookInfo //表
on b.BookID equals c.GUID
join d in t.T_Press
on c.PressCode equals d.PressCode
select new BorrowRankingModel //BorrowRankingModel 为自建模型
{
GUID = b.BookID,
PressName=d.PressName,
Author=c.Author,
BookTitle=c.BookTitle
};


var result1 = (from a in t.T_BaseBookInfo
join b in t.T_BorrowInfoHsty //表
on a.GUID equals b.BookID
join c in t.T_BaseBookInfo //表
on b.BookID equals c.GUID
join d in t.T_Press
on c.PressCode equals d.PressCode
select new BorrowRankingModel
{
GUID = b.BookID,
PressName=d.PressName,
Author=c.Author,
BookTitle=c.BookTitle
}).GroupBy(x=>x.GUID)
.Select((g,i)=> new BorrowRankingModel //BorrowRankingModel 为自建模型
{
排名=i+1,
GUID = g.Key,
流通次数=g.Count(),
PressName=g.First().PressName,
Author=g.First().Author,
BookTitle=g.First().BookTitle
};var result1 = (from a in t.T_BaseBookInfo
join b in t.T_BorrowInfoHsty //表
on a.GUID equals b.BookID
join c in t.T_BaseBookInfo //表
on b.BookID equals c.GUID
join d in t.T_Press
on c.PressCode equals d.PressCode
select new {b,c}).GroupBy(x=>x.GUID)
.Select((g,i)=> new BorrowRankingModel //BorrowRankingModel 为自建模型
{
排名=i+1,
GUID = g.Key,
流通次数=g.Count(),
PressName=g.First().PressName,
Author=g.First().Author,
BookTitle=g.First().BookTitle
};
;with cte as
(
select *
from (select *,rn=ROW_NUMBER() OVER(partition by GuidColumn6 order by getdate()) from T_BaseBookInfo )t
)
select a.正题名,a.作者,a.出版社,
stuff((select ','+GuidColumn6 from cte b
where b.GuidColumn6=a.GuidColumn6 and b.name=a.name
for xml path('')),1,1,'') 'GuidColumn6'
from cte a
group by a.正题名,a.作者,a.出版社
最好在数据里先做好统计再返回结果。linq虽然可以做分组,但木有那么方便。