次のようなテーブルにいくつかのデータがあります。
アイテム 日付 価格 A 2012 年 8 月 29 日 $3 B 2012 年 8 月 29 日 $23 C 2012 年 8 月 29 日 $10 A 2012 年 8 月 30 日 $4 B 2012 年 8 月 30 日 $25 C 2012 年 8 月 30 日 $11 A 2012 年 8 月 31 日 $3 B 2012 年 8 月 31 日 $22 C 2012 年 8 月 31 日 $8 A 2012 年 9 月 1 日 $3 B 2012 年 9 月 1 日 $26 C 2012 年 9 月 1 日 $9 A 2012 年 9 月 2 日 $3 B 2012 年 9 月 2 日 $24 C 2012 年 9 月 2 日 $9
A の価格が 2012 年 8 月 30 日以降変更されていないこと、アイテム C の価格が 2012 年 9 月 1 日以降変更されていないこと、および両方の経過日数を返すクエリを作成する必要があります (価格が変動しないアイテムを探しています)。このSQLを実行する必要があるWebレポートツールの制限のため、CTE、カーソル、または個別に作成された一時テーブル(select intoなど)を使用できません。「基本的な」シングルパス選択クエリのみを使用できます(ただし、サブクエリは機能します)。これを達成する方法について狡猾なアイデアを持っている人はいますか??
私の最初の試みは、価格が最新の価格と同じであるアイテムと価格でグループ化しhaving count > 2
、最小日付を識別し、最小日付と getdate の間で datediff を実行することでした。ただし、これはその価格の最初のインスタンスを識別するだけで、価格が異なる可能性のある後続の行は考慮されません。それが理にかなっていることを願っています。