Присвоение значений годам и кварталам в SQL Server - PullRequest
0 голосов
/ 26 июня 2019

Мне нужно присвоить значения годам и кварталам в SQL. У меня есть две переменные: Development_Year и Development_Quarter. Development Year значения - это годы, а Development_Quarter - значения "1,2,3,4". На данный момент, эти два отдельных поля в таблице. В конце концов, я хочу создать актуарный треугольник, в котором поля столбцов выглядят следующим образом: 1998Q1, 1998Q2, ...., 1999Q3 и т. Д. Для этого мне нужно объединить их, но я не уверен, как.

Затем я хочу присвоить временное значение году и месяцу, начиная с года, например, 1950, до текущего. Конечной целью является выход из этих новых значений, выберите каждые 3, а затем верните исходное значение, за которым стояло временное значение, объединенное с номером квартала.

Я не пробовал ни одного кода, но я думаю о том, чтобы сделать значения примерно такими же (с конкатенацией четвертого значения?): (actual year-starting year) * 12 + Quarter.

Я уверен, что это очень запутанно - дайте мне знать, что я могу уточнить.

1 Ответ

1 голос
/ 26 июня 2019

Если я понимаю, вы можете выбить это с помощью рекурсивного CTE, чтобы генерировать все годы, затем применить кросс-набор результатов с возможными кварталами, а затем:: 1001 *

DECLARE @quartervals TABLE (Quarterval VARCHAR(2))
INSERT INTO @quartervals
VALUES
('Q1'),
('Q2'),
('Q3'),
('Q4')

;WITH cte AS (
--get 60 years of ints:
SELECT 1950 AS year_
UNION ALL 
SELECT year_ + 1 
FROM cte 
WHERE year_ < 2010
)

SELECT CAST(cte.year_ AS VARCHAR(4)) + qv.quarterval AS year_quarter

FROM cte
CROSS APPLY @quartervals qv
...