【发布时间】:2010-09-07 13:47:17
【问题描述】:
我有以下 SQL:
select o.tekst as Enhet,
coalesce(f.Antall,0) as AntallF,
coalesce(f.snitt,0) as SnittF,
coalesce(b.antall,0) as AntallB
from tblhandlingsplan hp
inner join tblorg o on hp.eierorgid = o.orgid
left outer join (select f.handlingsplanid, count(t.tiltakid) as Antall, coalesce(avg(convert(float,t.status)),0) as Snitt from tblhandlingsplanforbedring f left outer join tblhandlingsplantiltak t on f.forbedringsid = t.forbedringsid group by f.handlingsplanid) f on hp.handlingsplanid = f.handlingsplanid
left outer join (select b.handlingsplanid, count(b.bevaringsid) as Antall from tblhandlingsplanbevaring b group by b.handlingsplanid) b on hp.handlingsplanid = b.handlingsplanid
where utsendingsid = 1
这正是我想要的方式...现在我正在尝试将其转换为 LINQ...
我已经走到这一步了
from h in TblHandlingsplans
join o in TblOrgs
on h.EierOrgID equals o.OrgID
join f in TblHandlingsplanForbedrings
on h.HandlingsplanID equals f.HandlingsplanID into f2
join b in TblHandlingsplanBevarings
on h.HandlingsplanID equals b.HandlingsplanID into b2
where h.UtsendingsID == 1
select new {
Enhet = o.Tekst,
AntallF = f2.Count(),
AntallB = b2.Count()
}
但是现在我被困住了...我一生都无法弄清楚如何将 SQL 解决方案中的平均部分包含在内...任何接受者?
我正在考虑将整个东西推入一个 SP 并留下它......
【问题讨论】:
-
你能创建一个简化版的 SQL 来代表你无法弄清楚的部分吗?我觉得有一个简单的答案,但这个问题有点复杂,有一堆我们不太了解的表格。
-
当我想加入“匿名查询”时,问题就来了,这给了我“tblHandlingsplanForbedring”表中的计数和平均值。如果我不需要平均值,我会直接加入桌子,但是当我需要平均值时我不能这样做。