transform.Kalender_C11.sql 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. SET QUOTED_IDENTIFIER ON
  2. GO
  3. SET ANSI_NULLS ON
  4. GO
  5. CREATE VIEW [transform].[Kalender_C11] AS
  6. WITH
  7. [Jahre] AS
  8. (SELECT DISTINCT ([T1].[number] + 2000) AS "Jahr"
  9. FROM [master].[dbo].[spt_values] [T1]
  10. WHERE ([T1].[number] + 2000) BETWEEN year(getdate()) - 10 AND year(getdate()) + 10
  11. AND [T1].[type] = 'P')
  12. , [Kalender_Tage_im_Jahr] AS
  13. (SELECT dateadd(DAY, [T1].[number], datefromparts([T2].[Jahr], 1, 1)) AS [Datum]
  14. FROM [master].[dbo].[spt_values] [T1]
  15. INNER JOIN [Jahre] [T2] ON dateadd(DAY, [T1].[number], datefromparts([T2].[Jahr], 1, 1)) <= datefromparts([T2].[Jahr], 12, 31)
  16. WHERE [T1].[type] = 'P')
  17. , [Kalender_mit_erster_und_letzter] AS
  18. (SELECT [Datum]
  19. , format([Datum], 'yyyy/MM') AS [Jahr/Monat]
  20. , cast(dateadd(MONTH, datediff(MONTH, 0, [Datum]), 0) AS date) AS [Monatserster]
  21. , eomonth([Datum]) AS [Monatsletzter]
  22. FROM [Kalender_Tage_im_Jahr])
  23. , [Monate] AS
  24. (SELECT *
  25. FROM (VALUES (1, 'Jan.')
  26. , (2, 'Feb.')
  27. , (3, N'März')
  28. , (4, 'Apr.')
  29. , (5, 'Mai')
  30. , (6, 'Juni')
  31. , (7, 'Juli')
  32. , (8, 'Aug.')
  33. , (9, 'Sep.')
  34. , (10, 'Okt.')
  35. , (11, 'Nov.')
  36. , (12, 'Dez.')) AS [T1] ([Monat_int], [Monat_Name]))
  37. SELECT cast([Datum] AS datetime) AS [Inv_Date]
  38. , [Datum]
  39. , [Jahr/Monat]
  40. , [Monatserster]
  41. , [Monatsletzter]
  42. , '("' + convert(varchar, [Monatserster], 23) + '","' + convert(varchar, [Monatsletzter], 23) + '")' AS [MUN_DATE]
  43. , convert(varchar, [Monatserster], 112) + '-' + convert(varchar, [Monatsletzter], 112) AS [Mitgliedsname]
  44. , datefromparts(year([Datum]), 1, 1) AS [Beginn Geschäftsjahr]
  45. , [Monate].[Monat_Name] + '/' + convert(varchar, year([Datum])) AS [Monat_Jahr]
  46. , format([Datum], 'yyyy') AS [Jahr]
  47. , format([Datum], 'MM') AS [Monat]
  48. , day([Datum]) AS [Tag]
  49. , [Monate].[Monat_Name] AS [Monat_kurz]
  50. FROM [Kalender_mit_erster_und_letzter]
  51. INNER JOIN [Monate] ON [Monate].[Monat_int] = month([Datum])
  52. GO
  53. SET QUOTED_IDENTIFIER OFF
  54. GO
  55. SET ANSI_NULLS OFF
  56. GO
  57. GO