kalender.Kalender_Mandant.sql 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. SET QUOTED_IDENTIFIER ON
  2. GO
  3. SET ANSI_NULLS ON
  4. GO
  5. CREATE VIEW [kalender].[Kalender_Mandant] AS
  6. WITH
  7. [Kalender_Mandant_mit_Arbeitstag]
  8. AS (SELECT [T1].[Hauptbetrieb_ID]
  9. , [T1].[Standort_ID]
  10. , [T1].[Bundesland_ID]
  11. , [T2].[Datum]
  12. , [T2].[Tag_im_Jahr]
  13. , [T2].[Wochentag]
  14. , [T2].[Wochentag_int]
  15. , [T2].[Periode]
  16. , [T2].[Kalenderwoche]
  17. , [T2].[Quartal]
  18. , [T2].[Datum_str]
  19. , [T2].[Datum_int]
  20. , [T1].[Samstag_Arbeitstag]
  21. , iif([T1].[Samstag_Arbeitstag] = 1, [T2].[MoSa], [T2].[MoFr]) AS [Arbeitstag]
  22. FROM [kalender].[Konfiguration_Mandant] [T1]
  23. CROSS JOIN [kalender].[Kalender_Tage] [T2])
  24. , [Kalender_Mandant_mit_Feiertag]
  25. AS (SELECT [T1].[Hauptbetrieb_ID]
  26. , [T1].[Standort_ID]
  27. , [T1].[Bundesland_ID]
  28. -- , [T2].[Bundesland_Kuerzel]
  29. , [T1].[Datum]
  30. , [T1].[Tag_im_Jahr]
  31. , [T1].[Wochentag]
  32. , [T1].[Wochentag_int]
  33. , [T1].[Periode]
  34. , [T1].[Kalenderwoche]
  35. , [T1].[Quartal]
  36. , [T1].[Datum_str]
  37. , [T1].[Datum_int]
  38. , [T2].[Feiertag_Name]
  39. , iif([T2].[Feiertag_ID] IS NOT NULL, 1, 0) AS [Feiertag]
  40. , [T1].[Samstag_Arbeitstag]
  41. , [T1].[Arbeitstag] * iif([T2].[Feiertag_ID] IS NULL, 1, 0) AS [Arbeitstag]
  42. FROM [Kalender_Mandant_mit_Arbeitstag] [T1]
  43. LEFT JOIN [kalender].[Feiertage_Berechnet] [T2] ON [T1].[Bundesland_ID] = [T2].[Bundesland_ID]
  44. AND [T1].[Datum] = [T2].[Datum])
  45. , [Kalender_Mandant_mit_Summe]
  46. AS (SELECT [Hauptbetrieb_ID]
  47. , [Standort_ID]
  48. , [Bundesland_ID]
  49. -- , [Bundesland_Kuerzel]
  50. , [Datum]
  51. , [Tag_im_Jahr]
  52. , [Wochentag]
  53. , [Wochentag_int]
  54. , [Periode]
  55. , [Kalenderwoche]
  56. , [Quartal]
  57. , [Datum_str]
  58. , [Datum_int]
  59. , [Feiertag_Name]
  60. , [Feiertag]
  61. , [Samstag_Arbeitstag]
  62. , [Arbeitstag]
  63. , rank() OVER (
  64. PARTITION BY [Arbeitstag],
  65. [Hauptbetrieb_ID],
  66. [Standort_ID],
  67. [Periode] ORDER BY [Datum]
  68. ) * [Arbeitstag] AS [Arbeitstag_Zaehler_Monat]
  69. , rank() OVER (
  70. PARTITION BY [Arbeitstag],
  71. [Hauptbetrieb_ID],
  72. [Standort_ID],
  73. year([Datum]) ORDER BY [Datum]
  74. ) * [Arbeitstag] AS [Arbeitstag_Zaehler_Jahr]
  75. , rank() OVER (
  76. PARTITION BY [Arbeitstag],
  77. [Hauptbetrieb_ID],
  78. [Standort_ID] ORDER BY [Datum]
  79. ) * [Arbeitstag] AS [Arbeitstag_Zaehler_Absolut]
  80. , sum([Arbeitstag]) OVER (
  81. PARTITION BY [Hauptbetrieb_ID],
  82. [Standort_ID],
  83. [Periode]
  84. ) AS [Arbeitstag_Summe_Monat]
  85. , sum([Arbeitstag]) OVER (
  86. PARTITION BY [Hauptbetrieb_ID],
  87. [Standort_ID],
  88. year([Datum])
  89. ) AS [Arbeitstag_Summe_Jahr]
  90. FROM [Kalender_Mandant_mit_Feiertag])
  91. , [Kalender_Mandant_mit_produktiv]
  92. AS (SELECT [Hauptbetrieb_ID]
  93. , [Standort_ID]
  94. , [Bundesland_ID]
  95. -- , [Bundesland_Kuerzel]
  96. , [T1].[Datum]
  97. , [T1].[Datum] AS "Invoice Date"
  98. , [T1].[Datum] AS "Bookkeep Date"
  99. , [Tag_im_Jahr]
  100. , [Wochentag]
  101. , [Wochentag_int]
  102. , [Periode]
  103. , [Kalenderwoche]
  104. , [Quartal]
  105. , [Datum_str]
  106. , [Datum_int]
  107. , [Feiertag_Name]
  108. , [Feiertag]
  109. , [Samstag_Arbeitstag]
  110. , [Arbeitstag]
  111. , [Arbeitstag_Zaehler_Absolut]
  112. , [Arbeitstag_Zaehler_Jahr]
  113. , [Arbeitstag_Summe_Jahr]
  114. , 1.0 * [Arbeitstag] / [Arbeitstag_Summe_Jahr] AS [ProduktivFaktorJahr]
  115. , [Arbeitstag_Zaehler_Monat]
  116. , [Arbeitstag_Summe_Monat]
  117. , 1.0 * [Arbeitstag] / [Arbeitstag_Summe_Monat] AS [ProduktivFaktorMonat]
  118. , month([T1].[Datum]) AS [Monat]
  119. FROM [Kalender_Mandant_mit_Summe] [T1]
  120. -- CROSS JOIN [kalender].[Buchungsbelege] [T2]
  121. -- WHERE [T1].[Datum] BETWEEN datefromparts(year([T2].[Buchung_von]), 1, 1) AND eomonth([T2].[Buchung_bis]))
  122. INNER JOIN [kalender].[Datum_Heute] [T2] ON [T1].[Datum] <= datefromparts(year([T2].[Datum]), 12, 31))
  123. --WHERE [Datum] <= datefromparts(year(getdate()), 12, 31))
  124. , [Kalender_Mandant_produktiv_Monatswerte]
  125. AS (SELECT *
  126. , iif([Monat] = 1, [ProduktivFaktorMonat], 0.0) AS [Monat_01]
  127. , iif([Monat] = 2, [ProduktivFaktorMonat], 0.0) AS [Monat_02]
  128. , iif([Monat] = 3, [ProduktivFaktorMonat], 0.0) AS [Monat_03]
  129. , iif([Monat] = 4, [ProduktivFaktorMonat], 0.0) AS [Monat_04]
  130. , iif([Monat] = 5, [ProduktivFaktorMonat], 0.0) AS [Monat_05]
  131. , iif([Monat] = 6, [ProduktivFaktorMonat], 0.0) AS [Monat_06]
  132. , iif([Monat] = 7, [ProduktivFaktorMonat], 0.0) AS [Monat_07]
  133. , iif([Monat] = 8, [ProduktivFaktorMonat], 0.0) AS [Monat_08]
  134. , iif([Monat] = 9, [ProduktivFaktorMonat], 0.0) AS [Monat_09]
  135. , iif([Monat] = 10, [ProduktivFaktorMonat], 0.0) AS [Monat_10]
  136. , iif([Monat] = 11, [ProduktivFaktorMonat], 0.0) AS [Monat_11]
  137. , iif([Monat] = 12, [ProduktivFaktorMonat], 0.0) AS [Monat_12]
  138. FROM [Kalender_Mandant_mit_produktiv])
  139. SELECT *
  140. FROM [Kalender_Mandant_produktiv_Monatswerte]
  141. GO
  142. SET QUOTED_IDENTIFIER OFF
  143. GO
  144. SET ANSI_NULLS OFF
  145. GO
  146. GO