【问题标题】:Update value of column A from last month to column B of current month - Sql Server将上个月 A 列的值更新为当月 B 列 - Sql Server
【发布时间】:2018-04-12 04:25:42
【问题描述】:

我有一张桌子“ABC”:

ID  CustomId      A              B              Month           Year
1      1         600             0                11            2016
2      1         500             0                12            2016
3      1         100             0                1             2017
4      1         200             0                2             2017
5      1         300             0                3             2017
6      2         300             0                1             2017
7      2         400             0                2             2017
8      2         500             0                3             2017

我想将上个月 A 列的值更新为当月的 B 列。

【问题讨论】:

  • 选择不同的(MySQL & SQL-Server)之一。

标签: mysql sql sql-server sql-server-2008


【解决方案1】:
update tb set b = ta.a
  from abc ta
 inner join abc tb
         on DATEADD(m, cast(ta.year as varchar(10)) + '/'
                       + cast(ta.month as varchar(10)) + '/01'
                     , -1)
            = cast(tb.year as varchar(10)) + '/' + cast(tb.month as varchar(10)) + '/01'

【讨论】:

  • 这是 MySQL 还是 MS SQL Server 的答案?
  • 这是用于 sql Server 的。对于 mySql 使用 date_add() 函数,例如 DATE_ADD( cast(ta.year as varchar(10)) + '/' + cast(ta.month as varchar(10)) + '/01', interval -1 month)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2018-07-29
  • 2012-11-23
相关资源
最近更新 更多