Group by,並匯總求和


 static void Main(string[] args)
        {
            bbb();
            Console.ReadKey();
        }
        public static List<Dto> toAdd()
        {
             List<Dto> dtos = new List<Dto>();
            Dto dto1 = new Dto() { uid = 001, value = 1, type = "add" };
            Dto dto2 = new Dto() { uid = 001, value = 1, type = "no" };
            Dto dto3 = new Dto() { uid = 001, value = 1, type = "no" };
            Dto dto4 = new Dto() { uid = 001, value = 1, type = "no" };
            Dto dto5 = new Dto() { uid = 002, value = 1, type = "add" };
            Dto dto6 = new Dto() { uid = 002, value = 1, type = "add" };
            Dto dto7 = new Dto() { uid = 002, value = 1, type = "add" };
            Dto dto8 = new Dto() { uid = 002, value = 1, type = "add" };
            dtos.Add(dto1);
            dtos.Add(dto2);
            dtos.Add(dto3);
            dtos.Add(dto4);
            dtos.Add(dto5);
            dtos.Add(dto6);
            dtos.Add(dto7);
            dtos.Add(dto8);

            return dtos;
        }
        private static List<Dto> aaa()
        {
            var dtos = toAdd();
            foreach (var item in dtos)
            {
                if (item.type == "no")
                {
                    item.value = -item.value;
                }
            }
            return dtos;
        }
        private static IEnumerable bbb()
        {
            var dtos = aaa();
            var nResult = dtos.GroupBy(a => new { a.uid })
                 .Select(g => new
                 {
                     uid=g.Key.uid,
                     value=g.Sum(x=>x.value)
                 });
            return nResult;
        }
///Entity Framework Lambda 實現多列Group by,並匯總求和
///參考https://www.cnblogs.com/xuxu-dragon/p/3824427.html

var result = DataSummaryRepository.FindBy(x => x.UserID == argMemberNo && x.SummaryDate <= argEndDate && x.SummaryDate >= argStarDate).OrderByDescending(x => x.SummaryDate).GroupBy(x => new { x.SummaryDate, x.UserID }).Select(g => new { PV = g.Sum(x => x.PV), UV = g.Sum(x => x.UV), OrderQunantity = g.Sum(x => x.OrderQunantity), OrderAmount = g.Sum(x => x.OrderAmount), CommissionEstimate = g.Sum(x => x.CommissionEstimate), AvaliableCommission = g.Sum(x => x.AvaliableCommission), HistoryCommission = g.Sum(x => x.HistoryCommission), SummaryDate = g.Key.SummaryDate, UserID = g.Key.UserID });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM