3

あなたが私を正しい方向に向けてくれることを願っています。

SQL Server 2008 を使用して管理図 ( http://en.wikipedia.org/wiki/Control_chart ) を生成しようとしています。基本的な管理図を作成するのは簡単です。平均偏差と標準偏差を計算してプロットします。

複雑な点 (少なくとも私にとっては) は、ステップ変化が識別されたときにチャートで平均と管理限界をリセットしたいということです。

現在、私はステップ変化を識別する本当に単純な方法、つまり平均の上または下に連続して現れる 5 つのポイントにのみ関心があります。それらを識別するより複雑な方法があります ( http://en.wikipedia.org/wiki/Western_Electric_rules ) が、私はこれを最初に開始したいと考えています。

私が解決したプロセスは次のとおりです。

  1. 月と年で集計して並べ替え、行番号を適用します。
  2. 全体平均を計算する
  3. 各データ項目が平均より高いか、低いか、同じかを識別し、+1、-1、または 0 のタグを付けます。
  4. 平均より上または下にある 5 つの連続したデータ項目を特定します (現在はカーソルを使用)。
  5. 平均より 5 ポイント上または 5 ポイント下の場合は、平均を再計算します。
  6. テーブルの最後まで繰り返します。

この種のプロセスは SQL サーバーで可能ですか? 再帰的なUDFが必要かもしれませんが、再帰は私にはちょっと無理です!

正しい方向に微調整していただければ幸いです。

乾杯

4

1 に答える 1

4

わかりました、WHILE ループを使用して繰り返し処理することになりました。完全なコードは投稿しませんが、手順は次のとおりです。

  1. ストアード・プロシージャー・パラメーターにデータを渡すために、ユーザー定義のテーブル・データ・タイプをセットアップします。

  2. 行番号と while ループを使用して入力テーブルの各データ値を反復処理し、現在の行番号を使用して入力データのサブセットに対してセット ベースの処理を実行する付随するストアド プロシージャを作成しました (次の 5 つのポイントが上にあるかどうかを確認するため)。平均を下回り、このフラグが作動したときに平均偏差と標準偏差を再計算します)。

  3. 元の値、行番号、月、平均値、上部管理限界、および下部管理限界を含むテーブルを出力します。

また、完全なネルソン ルールに基づいて機能するものを稼働させており、データが失敗したテストについても説明します。

現在、それをさらに開発する際に使用しているだけなので、VBAを使用してExcelシートをセットアップし、コマンドテキストとしてピボットテーブルに渡すSQL文字列を動的に構築しました。そうすれば、さまざまなデータ セットを使用して USP に繰り返し ping を送信したり、手順の実行方法に関する他のいくつかのパラメーターを変更したりできます (管理限界の調整など)。

最終的には、結果のデータを、現在取り組んでいる Business Objects のレポートとダッシュボードに渡すことができるようにしたいと考えています。

于 2012-10-25T14:17:25.893 に答える