load.Aftersales.sql 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. SET QUOTED_IDENTIFIER ON
  2. GO
  3. SET ANSI_NULLS ON
  4. GO
  5. CREATE VIEW [load].[Aftersales] AS
  6. SELECT --TOP(10)
  7. convert(varchar(20), [Client_DB]) AS [Client_DB]
  8. , convert(varchar(20), [Department Code]) AS [Department Code]
  9. , convert(varchar(100), [Auftrags-Nr.]) AS [Auftrags-Nr.]
  10. , convert(varchar(20), [Gen Prod Posting Group]) AS [Gen Prod Posting Group]
  11. , convert(varchar(100), [Benutzer Abr.]) AS [Benutzer Abr.]
  12. , convert(varchar(100), [Serviceberater]) AS [Serviceberater]
  13. , convert(varchar(130), [Monteur]) AS [Monteur]
  14. , convert(varchar(20), [Umsatzart]) AS [Umsatzart]
  15. , convert(varchar(50), [Model]) AS [Model]
  16. , convert(varchar(100), [Fahrzeug]) AS [Fahrzeug]
  17. , convert(varchar(20), [Marke]) AS [Marke]
  18. , convert(varchar(20), [Auftragsart]) AS [Auftragsart]
  19. , convert(varchar(50), [Kundenart]) AS [Kundenart]
  20. , convert(varchar(200), [Kunde]) AS [Kunde]
  21. , convert(datetime, [Invoice Date]) AS [Invoice Date]
  22. , convert(decimal(28, 8), [ben. AW]) AS [ben. AW]
  23. , convert(decimal(28, 8), [verk. AW]) AS [verk. AW]
  24. , convert(varchar(200), [Auftragsposition]) AS [Auftragsposition]
  25. , convert(varchar(20), [SB_Gruppe]) AS [SB_Gruppe]
  26. , convert(decimal(28, 8), [Rabatt Lohn]) AS [Rabatt Lohn]
  27. , convert(decimal(28, 8), [Rabatt Teile]) AS [Rabatt Teile]
  28. , convert(varchar(20), [Rg-Nr.]) AS [Rg-Nr.]
  29. , convert(varchar(200), [RG/Auftrag/Kunde]) AS [RG/Auftrag/Kunde]
  30. , convert(varchar(200), [RG/SB/Kunde/Datum]) AS [RG/SB/Kunde/Datum]
  31. , convert(varchar(20), [Labor No]) AS [Labor No]
  32. , convert(varchar(200), [Artikel / AW-Nr.]) AS [Artikel / AW-Nr.]
  33. , convert(varchar(200), [Kunde_Verkaufskunde]) AS [Kunde_Verkaufskunde]
  34. , convert(varchar(20), [Make Code]) AS [Make Code]
  35. , convert(varchar(20), [Location Code]) AS [Location Code]
  36. , convert(decimal(28, 8), [Amount]) AS [Amount]
  37. , convert(decimal(28, 8), [Line Discount Amount]) AS [Line Discount Amount]
  38. , convert(decimal(28, 8), [Quantity]) AS [Quantity]
  39. , convert(decimal(28, 8), [Unit Cost (lcy)]) AS [Unit Cost (lcy)]
  40. , convert(varchar(20), [Source Table]) AS [Source Table]
  41. , convert(varchar(100), [PGRP-Bezeichnung]) AS [PGRP-Bezeichnung]
  42. , convert(varchar(20), [Zuordnung]) AS [Zuordnung]
  43. , convert(varchar(20), [Fabrikat]) AS [Fabrikat]
  44. , convert(int, [Fabrikat_Sortierung]) AS [Fabrikat_Sortierung]
  45. , convert(varchar(20), [Hauptbetrieb_ID]) AS [Hauptbetrieb_ID]
  46. , convert(varchar(50), [Hauptbetrieb_Name]) AS [Hauptbetrieb_Name]
  47. , convert(varchar(20), [Standort_ID]) AS [Standort_ID]
  48. , convert(varchar(50), [Standort_Name]) AS [Standort_Name]
  49. , convert(varchar(50), [Fokus-Gruppe]) AS [Fokus-Gruppe]
  50. , convert(varchar(50), [Fokus-Untergruppe]) AS [Fokus-Untergruppe]
  51. , convert(decimal(28, 8), [Lohn]) AS [Lohn]
  52. , convert(decimal(28, 8), [Teile]) AS [Teile]
  53. , convert(decimal(28, 8), [Sonst.]) AS [Sonst.]
  54. , convert(decimal(28, 8), [TÜV]) AS [TÜV]
  55. , convert(decimal(28, 8), [Fremdl.]) AS [Fremdl.]
  56. , convert(decimal(28, 8), [Mietw.]) AS [Mietw.]
  57. , convert(decimal(28, 8), [NL Lohn]) AS [NL Lohn]
  58. , convert(decimal(28, 8), [NL Teile]) AS [NL Teile]
  59. , convert(decimal(28, 8), [EW Teile]) AS [EW Teile]
  60. , convert(decimal(28, 8), [EW Fremdl.]) AS [EW Fremdl.]
  61. , convert(decimal(28, 8), [DG]) AS [DG]
  62. , convert(decimal(28, 8), [Gesamt]) AS [Gesamt]
  63. , convert(decimal(28, 8), [ben. Std. Auftrag_gesamt]) AS [ben. Std. Auftrag_gesamt]
  64. , convert(decimal(28, 8), [ben. Std. Auftrag]) AS [ben. Std. Auftrag]
  65. , convert(date, [Datum]) AS [Datum]
  66. , convert(varchar(20), [Jahr/Monat]) AS [Jahr/Monat]
  67. , convert(date, [Aktueller Tag]) AS [Aktueller Tag]
  68. , convert(date, [Monatserster]) AS [Monatserster]
  69. , convert(date, [Monatsletzter]) AS [Monatsletzter]
  70. , convert(varchar(100), [MUN_DATE]) AS [MUN_DATE]
  71. , convert(varchar(50), [Mitgliedsname]) AS [Mitgliedsname]
  72. , convert(date, [Beginn Geschäftsjahr]) AS [Beginn Geschäftsjahr]
  73. , convert(varchar(20), [Monat_Jahr]) AS [Monat_Jahr]
  74. , convert(varchar(20), [Jahr]) AS [Jahr]
  75. , convert(varchar(20), [Monat]) AS [Monat]
  76. , convert(varchar(20), [Monat_kurz]) AS [Monat_kurz]
  77. FROM (SELECT [s].[Client_DB] AS [Client_DB]
  78. , [s].[Department Code] AS [Department Code]
  79. , [s].[Service Order No] AS [Auftrags-Nr.]
  80. , [s].[Gen Prod Posting Group] AS [Gen Prod Posting Group]
  81. -- convert(varchar(100), s.[Serviceberater]) as [Serviceberater_alt],
  82. , coalesce([u].[Name], [s].[User Id], 'n.v.') AS [Benutzer Abr.]
  83. , iif([s].[Auftragsart] = ('Teile'), [s].[Serviceberater], [a].[Name]) AS [Serviceberater]
  84. , left([t].[Monteur_und_Stunden], 130) AS [Monteur]
  85. ,
  86. -- s.[Hauptbetrieb],
  87. -- s.[Standort],
  88. [s].[Umsatzart] AS [Umsatzart]
  89. , [s].[Model] AS [Model]
  90. , [s].[Fahrzeug] AS [Fahrzeug]
  91. , [s].[Marke] AS [Marke]
  92. , [s].[Auftragsart] AS [Auftragsart]
  93. , [s].[Kundenart] AS [Kundenart]
  94. , [s].[Kunde] AS [Kunde]
  95. ,
  96. -- s.[Umsatz Lohn],
  97. -- s.[Umsatz Teile Service],
  98. -- s.[Einsatz Teile Service],
  99. [s].[Invoice Date] AS [Invoice Date]
  100. ,
  101. -- s.[Order Number],
  102. -- s.[Order Number_Rg_Ausg],
  103. -- convert(decimal(28,8), s.[ben. AW_Time_Clock]) AS [ben. AW],
  104. 12 * (isnull([t].[ben. Std. Auftrag], 0)) / nullif(count([s].[Client_DB]) OVER (PARTITION BY [s].[Service Order No]), 0) AS [ben. AW]
  105. , [s].[verk Std] AS [verk. AW]
  106. -- s.[DG] AS DG_ALT,
  107. , [s].[Auftragsposition] AS [Auftragsposition]
  108. , [s].[SB_Gruppe] AS [SB_Gruppe]
  109. , [s].[Rabatt Lohn] AS [Rabatt Lohn]
  110. , [s].[Rabatt Teile] AS [Rabatt Teile]
  111. ,
  112. -- s.[Order_Desc_100],
  113. -- s.[Invoice_Desc_100],
  114. -- s.[TÜV_Amount],
  115. -- s.[FL_Lack_Amount],
  116. -- s.[Mietw_Amount],
  117. -- s.[Umsatz_Sonst_Rest],
  118. [s].[No] AS [Rg-Nr.]
  119. , [s].[No] + ' - ' + [s].[Service Order No] + ' - ' + [s].[Kunde] AS [RG/Auftrag/Kunde]
  120. , [s].[No] + ' - ' + [s].[Serviceberater] + ' - ' + [s].[Kunde] + ' - ' + format([s].[Invoice Date], 'dd.MM.yyyy') AS [RG/SB/Kunde/Datum]
  121. , [s].[Labor No] AS [Labor No]
  122. , [s].[Position] AS [Artikel / AW-Nr.]
  123. , [s].[Kunde_Verkaufskunde] AS [Kunde_Verkaufskunde]
  124. , [s].[Make Code] AS [Make Code]
  125. , [s].[Location Code] AS [Location Code]
  126. , [s].[Amount] AS [Amount]
  127. , [s].[Line Discount Amount] AS [Line Discount Amount]
  128. , [s].[Quantity] AS [Quantity]
  129. , [s].[Unit Cost (lcy)] AS [Unit Cost (lcy)]
  130. , [s].[Source Table] AS [Source Table]
  131. , [p].[Description] AS [PGRP-Bezeichnung]
  132. , [p].[Zuordnung] AS [Zuordnung]
  133. , isnull([m].[Fabrikat], 'Fremd') AS [Fabrikat]
  134. , [m].[Fabrikat_Sortierung] AS [Fabrikat_Sortierung]
  135. , [l].[Hauptbetrieb_ID] AS [Hauptbetrieb_ID]
  136. , [l].[Hauptbetrieb_Name] AS [Hauptbetrieb_Name]
  137. , [l].[Standort_ID] AS [Standort_ID]
  138. , [l].[Standort_Name] AS [Standort_Name]
  139. , '' AS [Fokus-Gruppe]
  140. , '' AS [Fokus-Untergruppe]
  141. , iif([p].[Zuordnung] IN ('Mech.', 'Karo.', 'Lack', 'Elektr.'), [s].[Amount], 0.0) AS [Lohn]
  142. , iif([p].[Zuordnung] IN ('Teile'), [s].[Amount], 0.0) AS [Teile]
  143. , iif([p].[Zuordnung] IN ('Sonst.'), [s].[Amount], 0.0) AS [Sonst.]
  144. , iif([p].[Zuordnung] IN (N'TÜV'), [s].[Amount], 0.0) AS [TÜV]
  145. , iif([p].[Zuordnung] IN ('Fremdl.'), [s].[Amount], 0.0) AS [Fremdl.]
  146. , iif([p].[Zuordnung] IN ('Mietw.'), [s].[Amount], 0.0) AS [Mietw.]
  147. , iif([p].[Zuordnung] IN ('Mech.', 'Karo.', 'Lack', 'Elektr.'), [s].[Line Discount Amount], 0.0) AS [NL Lohn]
  148. , iif([p].[Zuordnung] IN ('Teile'), [s].[Line Discount Amount], 0.0) AS [NL Teile]
  149. , iif([p].[Zuordnung] IN ('Teile'), ([s].[Quantity] * [s].[Unit Cost (lcy)]), 0.0) AS [EW Teile]
  150. , iif([p].[Zuordnung] IN ('Fremdl.'), ([s].[Quantity] * [s].[Unit Cost (lcy)]), 0.0) AS [EW Fremdl.]
  151. , iif([s].[Service Order No] <> 'Gutschrift ohne Auftrag', (1.0 / count([s].[Client_DB]) OVER (PARTITION BY [s].[Service Order No])), 0.0) AS [DG]
  152. , (
  153. iif([p].[Zuordnung] IN ('Mech.', 'Karo.', 'Lack', 'Elektr.'), [s].[Amount], 0.0) +
  154. iif([p].[Zuordnung] IN ('Teile'), [s].[Amount], 0.0) +
  155. iif([p].[Zuordnung] IN ('Sonst.'), [s].[Amount], 0.0) +
  156. iif([p].[Zuordnung] IN (N'TÜV'), [s].[Amount], 0.0) +
  157. iif([p].[Zuordnung] IN ('Fremdl.'), [s].[Amount], 0.0) +
  158. iif([p].[Zuordnung] IN ('Mietw.'), [s].[Amount], 0.0)
  159. ) AS [Gesamt]
  160. , isnull([t].[ben. Std. Auftrag], 0) AS [ben. Std. Auftrag_gesamt]
  161. , isnull([t].[ben. Std. Auftrag], 0) / nullif(count([s].[Client_DB]) OVER (PARTITION BY [s].[Service Order No]), 0) AS [ben. Std. Auftrag]
  162. , [s].[Invoice Date] AS [Datum]
  163. , getdate() AS [Aktueller Tag]
  164. , [k].[Jahr/Monat]
  165. , [k].[Monatserster]
  166. , [k].[Monatsletzter]
  167. , [k].[MUN_DATE]
  168. , [k].[Mitgliedsname]
  169. , [k].[Beginn Geschäftsjahr]
  170. , [k].[Monat_Jahr]
  171. , [k].[Jahr]
  172. , [k].[Monat]
  173. , [k].[Monat_kurz]
  174. FROM [GC_ETL_ARI].[load_2].[Service_gesamt] [s]
  175. LEFT JOIN [GC_ETL_ARI].[x_data].[Produktbuchungsgruppe] [p] ON [s].[Client_DB] = [p].[Client_DB]
  176. AND [s].[Gen Prod Posting Group] = [p].[Gen_ Prod_ Posting Group]
  177. LEFT JOIN [GC_ETL_ARI].[x_data].[Marke] [m] ON [s].[Make Code] = [m].[Make Code]
  178. LEFT JOIN [GC_ETL_ARI].[transform_basis].[Location_Standort] [l] ON [s].[Client_DB] = [l].[Client_DB]
  179. AND [s].[Location Code] = [l].[Location Code]
  180. LEFT JOIN [GC_ETL_ARI].[temp].[Time_Clock_Entry_fuer_ben_AW_Auftrag] [t] ON [s].[Client_DB] = [t].[Client_DB]
  181. AND [s].[Service Order No] = [t].[Service Order No_]
  182. LEFT JOIN [GC_ETL_ARI].[transform].[Auftraege_Serviceberater_Mitarbeiter] [a] ON [s].[Client_DB] = [a].[Client_DB]
  183. AND [s].[Service Order No] = [a].[No_]
  184. LEFT JOIN [GC_ETL_ARI].[transform_basis].[User_Mitarbeiter] [u] ON [s].[Client_DB] = [u].[Client_DB]
  185. AND [s].[User ID] = [u].[User ID]
  186. LEFT JOIN [transform].[Kalender_C11] [k] ON [s].[Invoice Date] = [k].[Datum]) AS [V1]
  187. GO
  188. SET QUOTED_IDENTIFIER OFF
  189. GO
  190. SET ANSI_NULLS OFF
  191. GO
  192. GO