如何编写此SQL Server语法以基于同一表中其他2个列的值更新列

用户名

我正在使用SQL Server 2014,并且需要编写一个SQL查询,该查询将更新DateDimension表中的列(称为ToY)。

这是我的DateDimension表的摘录:

Day      Month     Year         Date          ToY
 1         11       2014     2014-11-01       NULL
 2         11       2014     2014-11-02       NULL

我需要根据以下逻辑更新该ToY列:

对于2014年11月至2015年10月之间的所有日期,ToY将为“ ToY 14-15”,而对于2015年11月至2015年10月之间的所有日期,ToY将为“ ToY 15-16”。

例如:如果月份= 11,年份= 2014,则ToY ='ToY 14-15'

我已经尝试过这段SQL代码,但是没有用:

 UPDATE DateDimension

 SET ToY = CASE Month+Year

 WHEN 112014 THEN 'ToY 14-15'

 ELSE ToY

 END
 GO

我进行了搜索,发现我可以将第三行写为:WHEN Month = 11 AND Year = 2014 THEN'Toy 14-15'

但是,我对CASE语句后的内容感到困惑:

Set ToY = CASE ??
Damien_The_Unbeliever

这使用了一些功能,但希望可以使我的思路很清楚:

UPDATE DateDimension

SET ToY = 'ToY ' + 
    CONVERT(char(2),DATEADD(month,-10,[Date]),12) + '-' +
    CONVERT(char(2),DATEADD(month,2,[Date]),12)

DATEADD(month,-10,...-对于11月之前的任何日期,请将此日期移至去年。DATEADD(month,2,...-对于十月之后的任何日期,请将此日期移至明年。总而言之,它们要么选择去年和今年(11月之前),要么选择今年和明年。

CONVERT(char(2),<date>,12)-将日期转换为样式中 的字符串yymmdd-但由于我要求输入char(2),因此仅保留了前2个字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询基于同一表中其他列的值从表中提取日期?

来自分类Dev

如何使用同一表中的其他两个列串联来更新列

来自分类Dev

基于同一表中另一列的值更新(重命名)列的值-T-SQL

来自分类Dev

将同一表中的一列中的值更新为SQL Server中的另一列

来自分类Dev

如何编写此 SQL Server 查询?

来自分类Dev

如何在 sql 中编写此查询?

来自分类Dev

如何在 Pandas 中编写此 SQL?

来自分类Dev

基于同一表中公共列的2个查询的SQL交集

来自分类常见问题

如何基于同一表中的另一列更新列

来自分类Dev

如何基于同一表中的另一列更新列

来自分类Dev

根据同一表的三个不同列(在SQL中以“-”分隔)创建其他唯一ID

来自分类Dev

SQL:通过限制来自同一表的其他值的长度来更新列值

来自分类Dev

如何在SQL Server中编写此sql查询?

来自分类Dev

MySQL-如何获取所有记录在同一表的其他列中

来自分类Dev

如何在sql-server中编写此查询?

来自分类Dev

如何在SQL Server 2008中编写此查询

来自分类Dev

如何在SQL Server 2008中编写此查询?

来自分类Dev

如何使用同一列中的其他值更新 MySQL 行?

来自分类Dev

如何在SSIS / SQL中编写此IF THEN ELSE查询?

来自分类Dev

如何在Laravel中编写此SQL查询?

来自分类Dev

如何用此方法在SQLite中编写sql?

来自分类Dev

如何用此方法在SQLite中编写sql?

来自分类Dev

如何在Hibernate的DetachedCriteria中编写此sql

来自分类Dev

比较SQL Server中同一表的列

来自分类Dev

比较SQL Server中同一表的列

来自分类Dev

SQL比较同一表中的两列,并在另一表中更新

来自分类Dev

与其他表进行联接时,如何从同一表返回3个COUNT列?

来自分类Dev

SQL Server-从同一表中的数据更新列

来自分类Dev

如何基于同一表的先前搜索结果更新SQL列

Related 相关文章

  1. 1

    SQL查询基于同一表中其他列的值从表中提取日期?

  2. 2

    如何使用同一表中的其他两个列串联来更新列

  3. 3

    基于同一表中另一列的值更新(重命名)列的值-T-SQL

  4. 4

    将同一表中的一列中的值更新为SQL Server中的另一列

  5. 5

    如何编写此 SQL Server 查询?

  6. 6

    如何在 sql 中编写此查询?

  7. 7

    如何在 Pandas 中编写此 SQL?

  8. 8

    基于同一表中公共列的2个查询的SQL交集

  9. 9

    如何基于同一表中的另一列更新列

  10. 10

    如何基于同一表中的另一列更新列

  11. 11

    根据同一表的三个不同列(在SQL中以“-”分隔)创建其他唯一ID

  12. 12

    SQL:通过限制来自同一表的其他值的长度来更新列值

  13. 13

    如何在SQL Server中编写此sql查询?

  14. 14

    MySQL-如何获取所有记录在同一表的其他列中

  15. 15

    如何在sql-server中编写此查询?

  16. 16

    如何在SQL Server 2008中编写此查询

  17. 17

    如何在SQL Server 2008中编写此查询?

  18. 18

    如何使用同一列中的其他值更新 MySQL 行?

  19. 19

    如何在SSIS / SQL中编写此IF THEN ELSE查询?

  20. 20

    如何在Laravel中编写此SQL查询?

  21. 21

    如何用此方法在SQLite中编写sql?

  22. 22

    如何用此方法在SQLite中编写sql?

  23. 23

    如何在Hibernate的DetachedCriteria中编写此sql

  24. 24

    比较SQL Server中同一表的列

  25. 25

    比较SQL Server中同一表的列

  26. 26

    SQL比较同一表中的两列,并在另一表中更新

  27. 27

    与其他表进行联接时,如何从同一表返回3个COUNT列?

  28. 28

    SQL Server-从同一表中的数据更新列

  29. 29

    如何基于同一表的先前搜索结果更新SQL列

热门标签

归档