我有一張像
Date Balance A Balance B
2022.03.01 100 200
2022.03.01 200 500
2022.03.02 300 600
2022.03.02 50 100
2022.03.03 150 300
2022.03.03 200 700
2022.03.04 450 500
2022.03.04 600 100
而且我需要按日期分組并獲得該日期以及以前日期的總余額。我可以這樣做:
var groupedData = from d in _myContext.Balances
group d by d.Date into dg
select new
{
Date = dg.Key,
TotalBalanceA = dg.Sum(t=>t.BalanceA),
TotalBalanceB = dg.Sum(t=>t.BalanceB),
PreviousTotalA = ?,
PreviousTotalB = ?
}
但我不確定如何獲得以前日期的總數。
因此,如果我們采用上表,我們應該得到如下分組資料:
Date TotalBalanceA TotalBalanceB PreviousTotalA PreviousTotalB
2022.03.01 300 700 0 0
2022.03.02 350 700 300 700
2022.03.03 350 1000 650 1400
2022.03.04 1050 700 1000 2400
更新:我想從 db 獲取這些資料。它是可問的
uj5u.com熱心網友回復:
可以使用子查詢嗎?
var groupedData = from d in _myContext.Balances
group d by d.Date into dg
select new
{
Date = dg.Key,
TotalBalanceA = dg.Sum(t=>t.BalanceA),
TotalBalanceB = dg.Sum(t=>t.BalanceB),
PreviousTotalA = _myContext.Balances.Where(b => b.Date <= dg.Key).Sum(b => b.BalanceA),
PreviousTotalB = _myContext.Balances.Where(b => b.Date <= dg.Key).Sum(b => b.BalanceB)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/463213.html
上一篇:使用linq過濾模型串列
下一篇:C#父/子資料庫資料串列系結到類
