1

タイトルが私がここで求めていることを完全に説明しているかどうかわからないので、もう少し詳しく説明してみましょう...

これを表示するテーブルを作成できる必要があります...

日付の例 画像を拡大

テーブル:

  1. アイテム (このアイテムがインストールおよび削除されるたびに)
  2. サプライヤー (サプライヤーがアイテムで使用されるたびに)
  3. レート(仕入先のレート)

次のことができる必要があります。

  1. 選択した期間の範囲を取得する
  2. 開始日としてテーブルから最も早い日付を取得します
  3. 最新の日付を取得する

開始日がすべて開始期間より前で、すべての終了日が終了期間より後の場合、単純な 1 行になります。ただし、期間の途中で開始または終了する日付は、その行に関連する日付を設定し、前の行の終了後に次の開始日を取得します。

これとは別にLinqを使用してプログラム全体を実行しましたが、動作しているように見えるものがありますが、Ivのやり方には本当に満足していません.

私の質問は...これらの日付を処理するエレガントな方法は何ですか? 最良の結果を得るには、C# または SQL Server を使用する必要がありますか?

4

1 に答える 1

1

誰かがエネルギー管理業界で働いているのを見るのは初めての喜びです。

残念ながら、私はあなたの質問をよく理解していませんが、私の提案は次のとおりです。

「生成/取得データ ロジックを下のレイヤーに移動」

パフォーマンス: SQL Server > .Net > LINQ

LINQ の機能は非常に限られており、扱いが容易ではありません。

SQL ストアド プロシージャを使用して一連のデータを戻そうとしましたか?

SQL クエリ内の関数は、問題case statementmin group by簡単に解決できます。

この場合、SQL Server は目的のデータを C# に戻します。C# はこれらのデータを表示する方法を必要とするだけです。

于 2012-07-17T13:42:52.323 に答える