ユーザーが .aspx ページから "track" テーブルにデータを入力しています。彼らはさまざまな活動の一連の日付を入力し、その日付を思い出させたい場合はボックスをチェックしています。現時点で私が抱えている特定の問題は、IN ステートメントの列を制限することです。
SELECT [id], [name], MIN([DATE]) AS [MinDate]
FROM track UNPIVOT ([DATE] FOR d IN ([date1],[date2],[date2])) unpvt
GROUP BY [id], [name]
date1
列date1chk
の値が の場合にのみ含めたい1
。同様に、date2
if date2chk
is "1" などです。それ以外の場合、そのdate#
列は IN に含まれません。
この後、私の課題は、たとえばが最小だった場合に、特定のレコードに対してからにdate2chk
設定されるようにテーブルを更新できるようにすることです。1
0
date2
あなたの考えは大歓迎です。これは、私が対処した中で最も困難な問題の 1 つであることを証明しています。
編集(フィードバックありがとうございます):
データ
ID Date1 Date1Chk Date2 Date2Chk Date3 Date3Chk
0 2013-01-15 0 2013-02-01 1 2013-02-10 1
1 2013-02-05 1 2013-02-05 1 2013-02-10 0
望ましい結果
ID MinDate
0 2013-02-01
1 2013-02-05
この結果が得られると仮定すると、テーブルをどのように更新するかはわかりません。たとえば、「望ましい結果」では、ID 1 は [Date1] と [Date2] の両方に存在する最小値を返しています。ユーザーが最初のインスタンスでリマインダーを停止するようにしたいので、[Date1Chk] は ([Date2Chk] ではなく) 0 に設定されます。