编写CASE语句以根据单个记录中的日期返回值

时间:2015-07-07 15:56:38

标签: sql-server sql-update case

我认为我的解决方案是某种CASE声明,但可以随意提出替代方案。

我们公司在4个星期内工作,我们有一个表格,其中的字段如下(道歉以这种方式显示,我尝试了一些其他方法,看起来很恐怖):

  • 期间
  • startDate - 期间的开始日期
  • endDate - 期间的结束日期
  • w1_end - 期间第1周的结束日期
  • w2_end - 期间第二周的结束日期
  • w3_end - 期间第3周的结束日期

我有第二个表,其中包含一个填充的日期字段,以及我需要根据上述字段中的数据填充的空句点和周字段。

我可以很容易地更新第二个表格中的句号字段但是无法根据日期是否在第1个字段中更新它以在周字段中放置1,2,3或4一段时间内的第2周,第3周或第4周。我已经开始提出一些想法了,但随着我写得越来越多,它就无法发挥作用。希望这是有道理的。一个选项,我想我会忽略wx_end字段,只是在start_date和开始日期之间使用+7然后是第1周的想法?

请有人建议一种方法来做到这一点(重新设计周期表是不可能的!)

1 个答案:

答案 0 :(得分:0)

使用连接和案例进行更新将执行您想要的操作...快速而脏的代码...将日期切换为列名称

{{1}}