Je sélectionne ai l'instruction SQL suivante:LINQ et rejoindre sur
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
qui fonctionne exactement comme je le veux ... Maintenant, je suis en train de convertir en LINQ ...
j'ai obtenu loin
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()
}
mais maintenant je suis coincé ... Je ne peux pas pour la vie de me comprendre comment inclure la partie moyenne de la solution SQL ... Tous les preneurs?
Je pense à pousser la chose dans un SP et le laisser avec ça ...
Pouvez-vous créer une version simplifiée du SQL qui représente uniquement la partie que vous ne pouvez pas comprendre? J'ai l'impression qu'il y a une réponse simple, mais la question la complique un peu avec un tas de tables dont nous ne savons pas grand-chose. – Ocelot20
Le problème vient quand je veux rejoindre la "requête anonyme" qui me donne le compte et la moyenne dans la table "tblHandlingsplanForbedring". Si je n'avais pas besoin de la moyenne, j'aurais juste rejoint directement la table, mais je ne peux pas le faire quand j'ai besoin de la valeur moyenne. –