[英]select Data between start year and start month to end year and end month?
[英]SQL Server data display for month start and end of a year
我在SQL Server中有这样的数据:
MONTH_START | MONTH_END
-------------|-----------
01-2014 | 01-2014
02-2014 | 02-2014
03-2014 | 03-2014
05-2014 | 05-2014
08-2014 | 08-2014
10-2014 | 10-2014
11-2014 | 11-2014
12-2014 | 12-2014
如何汇总日期以获取如下信息:
MONTH_START | MONTH_END
-------------|-----------
01-2014 | 05-2014
08-2014 | 08-2014
10-2014 | 12-2014
最终显示应为:如果一年中的所有12个月都存在于数据中,假设年份为2014,则MONTH_START为01-2014,MONTH_END为12-2014。 如果某个月不存在,则应显示为上表。
在结果表中,是吗
<tr>
<td>09-2014</td>
<td>12-2014</td>
</tr>
要么
<tr>
<td>10-2014</td>
<td>12-2014</td>
</tr>
您可以尝试以下查询以获取结果:
SELECT
MONTH_START,
MONTH_END = (
SELECT TOP 1
MONTH_START
FROM
MonthStartEnd
WHERE
DATEADD(MONTH, 1, CAST(REPLACE(MONTH_START, '-', '-01-') AS DATETIME)) NOT IN (
SELECT
CAST(REPLACE(MONTH_START, '-', '-01-') AS DATETIME)
FROM
MonthStartEnd )
AND CAST(REPLACE(MONTH_START, '-', '-01-') AS DATETIME) >= CAST(REPLACE(se.MONTH_START, '-', '-01-') AS DATETIME))
FROM
MonthStartEnd se
WHERE
DATEADD(MONTH, -1, CAST(REPLACE(MONTH_START, '-', '-01-') AS DATETIME)) NOT IN (
SELECT
CAST(REPLACE(MONTH_START, '-', '-01-') AS DATETIME)
FROM
MonthStartEnd )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.