C# と ASP.Net で e コマース アプリケーションを開発しました。管理者ユーザーの「ダッシュボード」ランディング ページについては、いくつかの異なる時間範囲の合計売上金額を表示する GridView を提供したいと思います。これらは私の列 (つまり、前日、先週、先月、最後の年、これまでの合計)。これらの値を、異なるステータスの注文 (つまり、完了、支払い済みだが発送されていない、進行中) に提供したいと思います。これに似たもの:
|OrderStatus|Today|LastWeek|LastMonth|
|Processed |$10 |$100 |$34000 |
|PaidNotShip|$4 |$12 |$45 |
私の質問:これを行うための最良/最も効率的な方法は何ですか? 個別の SQL ステートメントを記述して結合し、グリッドビューを sqldatasource にバインドできることはわかっています。
(select amountForYesterday, amountForLastWeek from sales where orderStatus = processed)
UNION
(select amountForYesterday, amountForLastWeek from sales where orderStatus = paidnotshipped)
しかし、これは、値ごとに個別のクエリを効果的に作成することになるため、面倒で非常に効率が悪いように思えます。
また、ロード時に .cs ページの後ろでこれを行い、プログラムでグリッド ビューを行ごとに設定することもできます。
この GridView は、ユーザーの特定の組織の情報のみを表示するため、それに基づいてフィルター処理する必要があります。
大規模なクエリを作成せずに、ページが表示されるたびにそのクエリとデータベースに継続的にアクセスすることなく、これを行う方法について、私はちょっと途方に暮れています。
何か案は?