0

私は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));
}
4

1 に答える 1