kalender.Kalender_Matrix.sql 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. SET QUOTED_IDENTIFIER ON
  2. GO
  3. SET ANSI_NULLS ON
  4. GO
  5. CREATE VIEW [kalender].[Kalender_Matrix] AS
  6. WITH
  7. [Kalender_Heute]
  8. AS (SELECT [T1].*
  9. , [T2].[Invoice Date] AS [Heute]
  10. FROM [kalender].[Kalender_Tage] [T1]
  11. CROSS JOIN [kalender].[Aktueller_Tag] [T2])
  12. , [Kalender_Heute_Vorjahr_Vormonat]
  13. AS (SELECT [Datum]
  14. , [Tag_im_Jahr]
  15. , [Wochentag]
  16. , [Wochentag_int]
  17. , [Periode]
  18. , [Kalenderwoche]
  19. , [Quartal_int]
  20. , [Datum_str]
  21. , [Datum_int]
  22. , [MoFr]
  23. , [MoSa]
  24. , [Jahr]
  25. , [Quartal]
  26. , [Monat]
  27. , [Tag]
  28. , [Heute]
  29. , dateadd(YY, -1, [Heute]) AS [Heute_Vorjahr]
  30. , dateadd(MM, -1, [Heute]) AS [Heute_Vormonat]
  31. FROM [Kalender_Heute])
  32. , [Zeit_Dimension_Berechnung]
  33. AS (SELECT [T1].*
  34. , iif([Datum] = [Heute], 1, 0) AS "Aktueller Tag"
  35. , iif([Datum] = dateadd(DD, -1, [Heute]), 1, 0) AS "Gestern"
  36. , iif([Datum] <= [Heute] AND [Datum] >= [kalender].[bomonth]([Heute]), 1, 0) AS "M bisher"
  37. , iif([Datum] <= [Heute_Vorjahr] AND [Datum] >= [kalender].[bomonth]([Heute_Vorjahr]), 1, 0) AS "M bisher Vorjahr"
  38. -- "M bisher / M bisher VJ",
  39. , iif([Datum] <= [Heute_Vormonat] AND [Datum] >= [kalender].[bomonth]([Heute_Vormonat]), 1, 0) AS "Voriger M bisher"
  40. -- "M bisher gruppiert",
  41. , iif([Datum] <= [Heute] AND [Datum] >= [kalender].[boquarter]([Heute]), 1, 0) AS "Q bisher" -- TODO
  42. , iif([Datum] <= dateadd(MM, -3, [Heute]) AND [Datum] >= [kalender].[boquarter](dateadd(MM, -3, [Heute])), 1, 0) AS "Voriges Q bisher"
  43. -- "Q bisher gruppiert",
  44. , iif([Datum] <= [Heute] AND [Datum] >= datefromparts(year([Heute]), 1, 1), 1, 0) AS "J bisher"
  45. , iif([Datum] <= [Heute_Vorjahr] AND [Datum] >= datefromparts(year([Heute]) - 1, 1, 1), 1, 0) AS "Voriges J bisher"
  46. ,
  47. -- "J bisher gruppiert",
  48. -- 0 as "J bisher / VJ bisher",
  49. iif([Datum] <= eomonth([Heute]) AND [Datum] >= [kalender].[bomonth]([Heute]), 1, 0) AS "Aktueller Monat"
  50. , iif([Datum] <= eomonth([Heute_Vormonat]) AND [Datum] >= [kalender].[bomonth]([Heute_Vormonat]), 1, 0) AS "Vormonat (-1)"
  51. , iif([Datum] <= eomonth(dateadd(MM, -2, [Heute])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -2, [Heute])), 1, 0) AS "Vormonat (-2)"
  52. , iif([Datum] <= eomonth(dateadd(MM, -3, [Heute])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -3, [Heute])), 1, 0) AS "Vormonat (-3)"
  53. , iif([Datum] <= eomonth([Heute_Vorjahr]) AND [Datum] >= [kalender].[bomonth]([Heute_Vorjahr]), 1, 0) AS "Akt. Monat Vorjahr"
  54. , iif([Datum] <= eomonth(dateadd(MM, -1, [Heute_Vorjahr])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -1, [Heute_Vorjahr])), 1, 0) AS "Vormonat (-1) Vorjahr"
  55. , iif([Datum] <= eomonth(dateadd(MM, -2, [Heute_Vorjahr])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -2, [Heute_Vorjahr])), 1, 0) AS "Vormonat (-2) Vorjahr"
  56. , iif([Datum] <= eomonth(dateadd(MM, -3, [Heute_Vorjahr])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -3, [Heute_Vorjahr])), 1, 0) AS "Vormonat (-3) Vorjahr"
  57. , iif([Datum] <= eomonth([Heute]) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -6, [Heute])), 1, 0) AS "letzte 6 Monate"
  58. , iif([Datum] <= eomonth([Heute]) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -12, [Heute])), 1, 0) AS "letzte 12 Monate"
  59. , iif([Datum] <= [Heute_Vormonat] AND [Datum] >= datefromparts(year([Heute_Vormonat]), 1, 1), 1, 0) AS "per Vormonat"
  60. , iif([Datum] <= dateadd(MM, -2, [Heute]) AND [Datum] >= datefromparts(year(dateadd(MM, -2, [Heute])), 1, 1), 1, 0) AS "per Vormonat (-2)"
  61. , iif([Datum] <= dateadd(MM, -3, [Heute]) AND [Datum] >= datefromparts(year(dateadd(MM, -3, [Heute])), 1, 1), 1, 0) AS "per Vormonat (-3)"
  62. , iif([Datum] <= dateadd(MM, -1, [Heute_Vorjahr]) AND [Datum] >= datefromparts(year(dateadd(MM, -1, [Heute_Vorjahr])), 1, 1), 1, 0) AS "per Vormonat Vorjahr"
  63. , iif([Datum] <= dateadd(MM, -2, [Heute_Vorjahr]) AND [Datum] >= datefromparts(year(dateadd(MM, -2, [Heute_Vorjahr])), 1, 1), 1, 0) AS "per Vormonat (-2) Vorjahr"
  64. , iif([Datum] <= dateadd(MM, -3, [Heute_Vorjahr]) AND [Datum] >= datefromparts(year(dateadd(MM, -3, [Heute_Vorjahr])), 1, 1), 1, 0) AS "per Vormonat (-3) Vorjahr"
  65. , iif(year([Datum]) = year([Heute]), 1, 0) AS "Aktuelles Jahr"
  66. , iif(year([Datum]) = year([Heute]) - 1, 1, 0) AS "letztes Jahr"
  67. , iif([Datum] <= eomonth(dateadd(MM, -2, [Heute])) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -5, [Heute])), 1, 0) AS "3 Monate bis Vormonat (-2)"
  68. , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -1, [Heute])), 1, 0) AS "Quartal (-1)"
  69. , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -2, [Heute])), 1, 0) AS "Quartal (-2)"
  70. , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -3, [Heute])), 1, 0) AS "Quartal (-3)"
  71. , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -1, [Heute_Vorjahr])), 1, 0) AS "Quartal (-1) Vorjahr"
  72. , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -2, [Heute_Vorjahr])), 1, 0) AS "Quartal (-2) Vorjahr"
  73. , iif([Quartal] = [kalender].[quarter_name](dateadd(QQ, -3, [Heute_Vorjahr])), 1, 0) AS "Quartal (-3) Vorjahr"
  74. , iif(([Datum] <= dateadd(QQ, -1, [Heute]) AND [Datum] >= datefromparts(year(dateadd(QQ, -1, [Heute])), 1, 1)) OR [Quartal] = [kalender].[quarter_name](dateadd(QQ, -1, [Heute])), 1, 0) AS "Quartal (-1) kum."
  75. , iif(([Datum] <= dateadd(QQ, -1, [Heute_Vorjahr]) AND [Datum] >= datefromparts(year(dateadd(QQ, -1, [Heute_Vorjahr])), 1, 1)) OR [Quartal] = [kalender].[quarter_name](dateadd(QQ, -1, [Heute_Vorjahr])), 1, 0) AS "Quartal (-1) kum. Vorjahr"
  76. ,
  77. --0 as "restl. Jahr",
  78. --0 as "Gesamtjahr",
  79. iif([Datum] <= eomonth([Heute_Vormonat]) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -12, [Heute])), 1, 0) AS "letzte 11 Monate"
  80. , iif([Datum] <= eomonth([Heute_Vormonat]) AND [Datum] >= [kalender].[bomonth](dateadd(MM, -14, [Heute])), 1, 0) AS "letzte 13 Monate"
  81. --0 as "12 Monate kum. rollierend"
  82. , iif([Datum] <= [Heute] AND [Datum] > dateadd(DD, -3, [Heute]), 1, 0) AS "letzte 3 Tage"
  83. , iif([Datum] <= [Heute] AND [Datum] > dateadd(DD, -7, [Heute]), 1, 0) AS "letzte 7 Tage"
  84. , iif([Datum] <= [Heute] AND [Datum] > dateadd(DD, -14, [Heute]), 1, 0) AS "letzte 14 Tage"
  85. , iif([Datum] <= [Heute] AND [Datum] > dateadd(DD, -30, [Heute]), 1, 0) AS "letzte 30 Tage"
  86. FROM [Kalender_Heute_Vorjahr_Vormonat] [T1])
  87. , [Zeit_Dimension_mit_Gruppen]
  88. AS (SELECT [Datum]
  89. , [Tag_im_Jahr]
  90. , [Wochentag]
  91. , [Wochentag_int]
  92. , [Periode]
  93. , [Kalenderwoche]
  94. , [Quartal_int]
  95. , [Datum_str]
  96. , [Datum_int]
  97. , [MoFr]
  98. , [MoSa]
  99. , [Jahr]
  100. , [Quartal]
  101. , [Monat]
  102. , [Tag]
  103. , [Heute]
  104. , [Heute_Vorjahr]
  105. , [Heute_Vormonat]
  106. , [Aktueller Tag]
  107. , [Gestern]
  108. , [M bisher]
  109. , [M bisher Vorjahr]
  110. , [M bisher] + [M bisher Vorjahr] * 2 AS [M bisher / M bisher VJ]
  111. , [Voriger M bisher]
  112. , [M bisher] + [Voriger M bisher] * 2 AS [M bisher gruppiert]
  113. , [Q bisher]
  114. , [Voriges Q bisher]
  115. , [Q bisher] + [Voriges Q bisher] * 2 AS [Q bisher gruppiert]
  116. , [J bisher]
  117. , [Voriges J bisher]
  118. , [J bisher] + [Voriges J bisher] * 2 AS [J bisher gruppiert]
  119. , [Aktueller Monat]
  120. , [Vormonat (-1)]
  121. , [Vormonat (-2)]
  122. , [Vormonat (-3)]
  123. , [Akt. Monat Vorjahr]
  124. , [Vormonat (-1) Vorjahr]
  125. , [Vormonat (-2) Vorjahr]
  126. , [Vormonat (-3) Vorjahr]
  127. , [letzte 6 Monate]
  128. , [letzte 12 Monate]
  129. , [per Vormonat]
  130. , [per Vormonat (-2)]
  131. , [per Vormonat (-3)]
  132. , [per Vormonat Vorjahr]
  133. , [per Vormonat (-2) Vorjahr]
  134. , [per Vormonat (-3) Vorjahr]
  135. , [Aktuelles Jahr]
  136. , [letztes Jahr]
  137. , [3 Monate bis Vormonat (-2)]
  138. , [Quartal (-1)]
  139. , [Quartal (-2)]
  140. , [Quartal (-3)]
  141. , [Quartal (-1) Vorjahr]
  142. , [Quartal (-2) Vorjahr]
  143. , [Quartal (-3) Vorjahr]
  144. , [Quartal (-1) kum.]
  145. , [Quartal (-1) kum. Vorjahr]
  146. , [letzte 11 Monate]
  147. , [letzte 13 Monate]
  148. , [letzte 3 Tage]
  149. , [letzte 7 Tage]
  150. , [letzte 14 Tage]
  151. , [letzte 30 Tage]
  152. FROM [Zeit_Dimension_Berechnung])
  153. SELECT *
  154. FROM [Zeit_Dimension_mit_Gruppen]
  155. GO
  156. SET QUOTED_IDENTIFIER OFF
  157. GO
  158. SET ANSI_NULLS OFF
  159. GO
  160. GO