用户正在从 .aspx 页面将数据输入到我的“跟踪”表中。他们正在为不同的活动输入一系列日期,如果他们想被提醒该日期,请选中一个框。我目前遇到的具体问题是限制我的 IN 语句中的列:
SELECT [id], [name], MIN([DATE]) AS [MinDate]
FROM track UNPIVOT ([DATE] FOR d IN ([date1],[date2],[date2])) unpvt
GROUP BY [id], [name]
date1
如果 columndate1chk
的值为,我只想包括1
。同样,date2
如果date2chk
为“1”等。否则该date#
列不包含在 IN 中。
在此之后,我的挑战是能够更新表,例如,例如,如果是最小值,则为特定记录date2chk
设置从1
到。0
date2
非常感谢您的想法——事实证明这是我处理过的更难的问题之一。
编辑(感谢您的反馈):
数据
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] 将设置为 0(而不是 [Date2Chk])。