SQL - 根据日期,按行查询每行多行

时间:2016-09-20 19:59:01

标签: sql sql-server date datediff

我们今天说 06/30/2013

我有表A:

| person    mood        date        |
|-----------------------------------|
| guy01     happy       06/07/2013  |
| guy02     sad         12/12/2012  |
| guy02     happy       04/28/2013  |

我想要一个SQL查询以某种方式检查每个日期之间的几个月并输出该行,但是在下一次情绪变化今天的月份之前的几个月。如果同一个人中有多个mood在同一个月内发生了变化,请使用当月的最新mood

(例如:如果今天是march/2012,并且bob中有happyjanuary/2012的记录,并且没有bob的记录存在,我希望获得3行的输出:[bob,happy,01/2012,],[bob,happy,02/2012,],[bob,happy,03/2012,]

我想要表B:

| person    status      month_yr |
|--------------------------------|
| guy01     happy       06/2013  |
| guy02     sad         12/2012  |
| guy02     sad         01/2013  |
| guy02     sad         02/2013  |
| guy02     sad         03/2013  |
| guy02     happy       04/2013  |
| guy02     happy       05/2013  |
| guy02     happy       06/2013  |

我该怎么做?

限制:

  • 使用MS SQL Server
  • 无法创建表格,程序,功能,触发器等。
  • 应该使用多个mood更改

0 个答案:

没有答案