SQL Server でレポートを作成しようとしています。基本的なテーブル設定は次のとおりです。
注文(ID、DateCreated、ステータス)
商品(ID、名前、価格)
Order_Product_Mapping (OrderID、ProductID、Quantity、Price、DateOrdered)
ここでは、次のような期間の売上高が類似している製品をグループ化するレポートを作成します。
1 か月以上の売り上げ:
- コカ、ペプシ、タイガー:平均20000ドル(コカ:21000ドル、ペプシ:19000ドル、タイガー:20000ドル)
- パン、肉: 平均 $10000 (パン: $11000、肉: $9000)
() 内のテキストは明確にするためのものであり、レポートには必要ありません)。ユーザーは、類似と見なすことができる販売間の変動を定義します。変動が 5% 未満の例の売上は類似していると見なされ、グループ化する必要があります。期間もユーザー定義です。
ある期間の総売上を計算することはできますが、売上の変動によってそれらをグループ化する方法がわかりません。私は SQL Server 2012 を使用しています。
申し訳ありませんが、私の英語はあまり上手ではありません:)
更新: *私は実際に何が必要かを理解しました ;) *
次のような数値の既知の配列の場合: 1,2,3,50,52,100,102,105
それらを少なくとも 3 つの番号を持つグループにグループ化する必要があり、グループ内の任意の 2 つの項目の差が 10 未満です。
上記の配列の場合、出力は次のようになります。
[1,2,3]
[100,102,105]
=> アルゴリズムは 3 つのパラメーターを取ります: 配列、グループを形成するための最小アイテム、および 2 つのアイテム間の最大差。
これをC#で実装するにはどうすればよいですか?