2014-12-08 3 views
-2
дать

финансовый год, как получить месяц и год стоимость за дать финансовый годкак получить месяц и год значение для

если мой вход 2013. мой ожидается из пут

Month Year 
4  2013 
5  2013 
6  2013 
7  2013 
8  2013 
9  2013 
10  2013 
11  2013 
12  2013 
1  2014 
2  2014 
3  2014 
+1

Вы пробовали что-нибудь? Вы всегда будете снижаться, если не будете пытаться решить эту проблему самостоятельно. – Fred

+0

Какая система баз данных? – chridam

ответ

0

Используйте Recursive CTE, чтобы получить ожидаемый результат.

DECLARE @nYearInput AS CHAR(4) 
DECLARE @start DATETIME, @end DATETIME 

SET @nYearInput = '2013' -- Change your input here 

SET @start = CAST(@nYearInput AS VARCHAR) + '0401' 
SET @end= CAST(@nYearInput + 1 AS VARCHAR) + '0301' 

;WITH cte AS 
(
    SELECT dt = DATEADD(DAY, -(DAY(@start) - 1), @start) 

    UNION ALL 

    SELECT DATEADD(MONTH, 1, dt) 
    FROM cte 
    WHERE dt < DATEADD(DAY, -(DAY(@end) - 1), @end) 
) 
SELECT YEAR(dt) AS Year, month(dt) AS month 
FROM cte 
Смежные вопросы