Voglio riassumere tre campi diversi di una tabella in una query. Voglio un LINQ equivalente di questo T-SQL:Ottieni la somma di due colonne in una query LINQ senza raggruppamento
select sum(fld1), SUM(fld2), SUM(fld3) from MyTable where classID = 5
Tutti gli esempi che ho trovato sia utilizzare un gruppo o di chiamare la query più volte, una volta per ogni campo che ha bisogno di essere riassunta.
Ho qualcosa di simile ora. Ma non voglio aggiungere un gruppo per clausola poiché non è richiesto nel suo modulo T-SQL.
from a in MyTable
where a.classID == 5
group a by a.classID into g
select new
{
Sumfld1 = g.Sum(x => x.fld1),
Sumfld2 = g.Sum(x => x.fld2),
Sumfld3 = g.Sum(x => x.fld3)
}
Qualche suggerimento? Grazie per il tuo tempo.
È possibile utilizzare 'raggruppa per 1 in g' per applicare il gruppo necessario senza alcun effetto. – mellamokb
Fa davvero una differenza pratica non introdurre la clausola group by? Quanto dura la query in entrambi i modi? – Enigmativity
perché stai raggruppando su classId quando filtri anche su classId. Perché non lasciare semplicemente il gruppo? –