列の値で「壊れる」SQL Server の結果セットが必要ですが、ランキング関数でこの列で並べ替えると、本当に必要な順序が失われます。これは、例によって最もよく説明されています。私が現在実験しているクエリは次のとおりです。
select RANK() over(partition by Symbol, Period order by TradeDate desc)
SymbSmaOverUnderGroup, Symbol, TradeDate, Period, Value, Low, LowMinusVal,
LMVSign
from #smasAndLow3
そしてそれは戻ります:
Rnk Symbol TradeDate Period Value Low LowMinusVal LMVSign
1 A 9/6/12 5 37.09 36.71 -.38 U
2 A 9/5/12 5 37.03 36.62 -.41 U
3 A 9/4/12 5 37.07 36.71 -.36 U
4 A 8/31/12 5 37.15 37.30 .15 O
5 A 8/30/12 5 37.22 37.40 .18 O
6 A 8/29/12 5 37.00 36.00 -1.00 U
7 A 8/28/12 5 37.10 37.00 -.10 U
ここで必要なランクは次のとおり1,1,1,2,2,3,3
です。したがって、Symbol、Period で分割する必要があり、LMVSign (U、O、および E の値のみを含む) で新しい分割を開始する必要がありますが、TradeDate desc で注文することが不可欠です。私が間違っていない限り、LMVSign によるパーティション化または順序付けにより、日付列での並べ替えができなくなります。これが理にかなっていることを願っています。私はカーソルなしでこれを行うために狂ったように働いていますが、それを機能させることはできません..事前に感謝します。