Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linq Discussion :

sum sur 2 colonnes


Sujet :

Linq

  1. #1
    Membre du Club
    sum sur 2 colonnes
    Bonjour,

    Je voudrais modifier ce code et utiliser la fonction sum sur la colonne 2 et la colonne 3 et faire un group by sur la colonne 1
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                    var query = from b in Table.AsEnumerable()
                                group b by new { colonne1 = b.Field<string>("Column1"), colonne2 = b.Field<string>("Column2"), colonne3 = b.Field<string>("Column3")) } into g
                                select new
                                {
                                    Colonne1 = g.Key.colonne1,
                                    Colonne2 = g.Key.colonne2,
                                    Colonne3 = g.Key.colonne3,
                                    Colonne4 = g.Key.colonne4
                                };


    j'ai pensé à un truc comme ça :


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    			  var query = from p in Table.AsEnumerable()
                  let k = new
                  {
                      Colonne1 = p.Field<string>("Column1")
                  }
                  group p by k into t
                  select new
                  {
                      Sum1 = t.Sum(p => p.Field<string>("Column1")),
    		  Sum2 = t.Sum(p => p.Field<string>("Column2")),
                  };



    Voici ce que j'attends :



    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Column4 = column3 / column2 *10

  2. #2
    Membre du Club
    J'ai fait ceci et ça a l'air de fonctionner

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    					var query =
                            datatable.AsEnumerable()
                            .Select(x =>
                               new {
                                   Colonne1 = x["Column1"],
                                   Colonne2 = x["Column2"],
                                   Colonne3 = x["Column3"]
                               }
                             )
                             .GroupBy(s => new { s.Colonne1 })
                             .Select(g =>
                                   new {
                                       Colonne1 = g.Key.Colonne1,
                                       Colonne2 = g.Sum(x => Math.Round(Convert.ToDecimal(x.Colonne2), 2)),
                                       Colonne3 = g.Sum(x => Math.Round(Convert.ToDecimal(x.Colonne3), 2))
                                   }
                             );

###raw>template_hook.ano_emploi###