2009-10-16 8 views
-1

J'ai essayé du code pour obtenir le "total cumulé" et le "sous-total", mais cela a donné un résultat positif.Linq- Total et sous-total

Lorsque le code est donné:

var salesPeople = 
new SalesPerson[] 
{ 
new SalesPerson{Name="Ricky", RegionCode="R001",SalesAmount=100, 
SalesDate=Convert.ToDateTime("01/Jan/2009")}, 

new SalesPerson{Name="Mark", RegionCode="R001",SalesAmount=200, 
SalesDate=Convert.ToDateTime("02/Jan/2009")}, 

new SalesPerson{Name="Jon", RegionCode="R001",SalesAmount=400, 
SalesDate=Convert.ToDateTime("10/Jan/2009")}, 

new SalesPerson{Name="Ricky", RegionCode="R001",SalesAmount=100, 
SalesDate=Convert.ToDateTime("05/Jan/2009")}, 

new SalesPerson{Name="Mark", RegionCode="R001",SalesAmount=200, 
SalesDate=Convert.ToDateTime("07/Jan/2009")}, 

new SalesPerson{Name="Jon", RegionCode="R001",SalesAmount=250, 
SalesDate=Convert.ToDateTime("11/Jan/2009")}, 

new SalesPerson{Name="Ricky", RegionCode="R002",SalesAmount=50, 
SalesDate=Convert.ToDateTime("01/feb/2009")}, 

new SalesPerson{Name="Mark", RegionCode="R002",SalesAmount=120, 
SalesDate=Convert.ToDateTime("02/feb/2009")}, 

new SalesPerson{Name="Peter", RegionCode="R002",SalesAmount=30, 
SalesDate=Convert.ToDateTime("10/feb/2009")}, 

new SalesPerson{Name="Ricky", RegionCode="R002",SalesAmount=400, 
SalesDate=Convert.ToDateTime("05/feb/2009")}, 

new SalesPerson{Name="Mark", RegionCode="R002",SalesAmount=70, 
SalesDate=Convert.ToDateTime("07/feb/2009")}, 

new SalesPerson{Name="Peter", RegionCode="R002",SalesAmount=60, 
SalesDate=Convert.ToDateTime("11/feb/2009")} 

}; 

Comment puis-je trouver le total, SubTotal, RunningTotal similaire à la suivante.

 (1) Running Total Based on Region and Month 

          Sales History 
     ------------------------------------------------------------- 
     Region Code  Name  MonthyRunningTotal  SalesDate   
                  (By Month) 

     ------------------------------------------------------------- 

     R001   Ricky  100     01/Jan/2009 
     R001   Ricky  200     05/Jan/2009 


     R002   Ricky   50     01/feb/2009 
     R002   Ricky  450     05/feb/2009 

     R001   Mark   200     02/Jan/2009 
     R001   Mark   400     07/Jan/2009 


     R002   Mark  120     02/feb/2009 
     R002   Mark  190     07/feb/2009 

     R001   Jon   400     10/Jan/2009 
     R001   Jon   650     11/Jan/2009 

     R002   Peter  30     10/feb/2009 
     R002   Peter  90     11/feb/2009 

et

   (2) Total and Subtotal based on Region and Month 

        Sales History (Based on Region and Month) 
     ------------------------------------------------------------- 
     Region Code  Name  MonthyRunningTotal  SalesDate   
                  (By Month)  
     ------------------------------------------------------------- 

     R001   Ricky  100     01/Jan/2009 
     R001   Ricky  100     05/Jan/2009 

         Total  ---- 
            200 
            ---- 

     R002   Ricky   50     01/feb/2009 
     R002   Ricky  400     05/feb/2009 

         Total  ---- 
            450 
            ----  

     R001   Mark   200     02/Jan/2009 
     R001   Mark   200     07/Jan/2009 

         Total  ----- 
            400 
            ----- 

     R002   Mark  120     02/feb/2009 
     R002   Mark   70     07/feb/2009 

         Total  ---- 
            190 
            ---- 

     R001   Jon   400     10/Jan/2009 
     R001   Jon   250     11/Jan/2009 
            ---- 
            650 
            ---- 

     R002   Peter  30     10/feb/2009 
     R002   Peter  60     11/feb/2009 
            ----- 
            90 
            ----- 

Répondre

-1

Groupe utilisation et Somme:

from s in SalesPeople 
group s by s.RegionCode into g 
select new {Category=g.Key, Sum = g.Group.Sum(p => p.SalesAmount)} 

Voir aussi http://www.develop-one.net/blog/2007/11/11/LINQSumAndGroupBy.aspx

+0

cela ne répond pas à la question de l'OP – Tion

+0

Ne répond pas à la question. Voir http://stackoverflow.com/questions/1834753/linq-to-sql-and-a-running-total-on-ordered-results – Peter

+0

quel espace de noms dois-je importer pour utiliser .Group? Je reçois l'erreur du compilateur (manque-t-on une référence d'assembly ou une directive using) sur .Group –

13

Je trouve cette question en cherchant une réponse au problème total en cours . J'ai été déçu que la réponse ne semble pas résoudre ce problème, alors j'ai demandé à mon propre question et j'ai eu une bonne réponse. J'espère que cela aide quelqu'un d'autre à essayer de faire des totaux en cours.