私は2つの問題に直面しています:
ROW_NUMBER を SQL ビューに割り当てて、行番号に基づいて実行中の合計を実行しようとしました (したがって、各レコードに基づいて合計を取得します) が、結果として生じるパフォーマンスの低下は非常に顕著でした。
日付のT-SQLでこれを行う方法を知っています:
この SQL ステートメントのRunningTotal
列は、まさに私が必要としているものです (明細化された合計)。
しかし、実行には非常に時間がかかります。
UPDATE 2 2
番目のビューを作成した方法は次のとおりです。
CREATE VIEW [dbo].[vCI_UNIONALL_ROW] AS
SELECT ROW_NUMBER() OVER(ORDER BY EffChkDt DESC) AS [Row]
,*
FROM vCI_UNIONALL
GO
私のモデル:
public class UnionAllModel
{
public int? InvoiceNumber { get; set; }
[DataType(DataType.Currency)]
public Decimal? Amount { get; set; }
[DataType(DataType.DateTime)]
public DateTime? EffChkDt { get; set; }
[omitted for clarity]
}
これまでのLINQクエリは次のとおりです。
using (var db = new PLOGITENS01Entities())
{
var rvUnionAll = (from u in db.vCI_UNIONALL
orderby u.EffChkDt ascending
select new UnionAllModel()
{
InvoiceNumber = u.InvoiceNumber,
Date = u.Date,
AccountNumber = u.AccountNumber,
ClientName = u.ClientName,
Amount = u.Amount,
InAmount = u.InAmount,
OutAmount = u.OutAmount,
ClientRiskAdjs = u.ClientRiskAdjs,
SpecificAdjs = u.SpecificAdjs,
EffChkDt = u.EffChkDt,
PayStatus = u.PayStatus,
Type = u.Type
})
.ToList();
return View(new GridModel(rvUnionAll));
}