1. Learn
  2. /
  3. Курси
  4. /
  5. Ієрархічні та рекурсивні запити в SQL Server

Connected

Вправа

Створіть річний часовий ряд

Мета цієї вправи — створити послідовність днів на рік. Для цього потрібно використати дві функції роботи з датою/часом:

  • GETDATE()
  • DATEADD(datepart, number, date)

За допомогою GETDATE() ви отримуєте поточний час (напр., 2019-03-14 20:09:14), а з DATEADD(month, 1, GETDATE()) — поточну дату плюс один місяць (напр., 2019-04-14 20:09:14).

Щоб отримати послідовність днів на рік, потрібно 365 рекурсивних кроків. Тому збільшіть кількість ітерацій за допомогою OPTION (MAXRECURSION n), де n — це кількість ітерацій.

Інструкції

100 XP
  • Ініціалізуйте поточний час як time.
  • Рекурсивно виберіть CTE і об'єднайте опорний та рекурсивний члени коректним оператором.
  • Обмежте кількість ітерацій до кількості днів у році мінус 1.
  • Збільшіть максимальну кількість ітерацій до кількості днів у році за допомогою OPTION (MAXRECURSION n).