131 messaggi dal 06 giugno 2011
ciao a tuti ho una query con raggruppamento per adesso client side, siccome vorrei ottimizzarla e velocizzarla vorrei farla server side, ma come potrei tradurre una query simile a questa:
  var trovato = trovato0?.GroupBy(x => new { x.NumeroLotto,x.AnnoLotto,  x.CodiceMagazzino, x.CodiceArticolo })
                        .Select(s => new CorpoMovimentoMagazzinoLight
                        {
                            DataDocumento = s.FirstOrDefault(j => j.Tipo4 == "ARM" || j.TipoVendita == "ARMT") != null ? s.FirstOrDefault(j => j.Tipo4 == "ARM" || j.TipoVendita == "ARMT").DataDocumento : s.FirstOrDefault().DataDocumento,
                            NumeroLotto = s.Key.NumeroLotto,
                            CodiceVarieta = s.FirstOrDefault().CodiceVarieta,
                            DescrizioneVarieta = s.FirstOrDefault().DescrizioneVarieta,
                            CodiceTipoProduzione = s.FirstOrDefault(x => !string.IsNullOrEmpty(x.CodiceTipoProduzione) && x.TipoSegnoMagazzino == "C")?.CodiceTipoProduzione,
                            DescrizioneTipoProduzione = s.FirstOrDefault(x => !string.IsNullOrEmpty(x.DescrizioneTipoProduzione) && x.TipoSegnoMagazzino == "C")?.DescrizioneTipoProduzione,
                            AnnoLotto = s.Key.AnnoLotto,
                            NumeroColli = s.Where(j => j.TipoSegnoMagazzino == "C").Sum(x => x.NumeroColli) - s.Where(j => j.TipoSegnoMagazzino == "S").Sum(x => x.NumeroColli),

}
perchè non crei una stored procedure?
131 messaggi dal 06 giugno 2011
si , però sto cercando di capire come poter ottenere lo stesso risultato tramite t-sql , cioe su un group by come posso prendere il firstordefault secondo una condizione o su un sum
Modificato da brux88 il 18 novembre 2021 12:35 -

PER ESMEPIO:
 DataDocumento = s.FirstOrDefault(j => j.Tipo4 == "ARM" || j.TipoVendita == "ARMT") != null ? s.FirstOrDefault(j => j.Tipo4 == "ARM" || j.TipoVendita == "ARMT").DataDocumento : s.FirstOrDefault().DataDocumento,


oppure:
NumeroColli = s.Where(j => j.TipoSegnoMagazzino == "C").Sum(x => x.NumeroColli) - s.Where(j => j.TipoSegnoMagazzino == "S").Sum(x => x.NumeroColli)

Modificato da brux88 il 18 novembre 2021 12:43 -
Modificato da brux88 il 18 novembre 2021 12:44 -
Modificato da brux88 il 18 novembre 2021 12:49 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.