load.Aftersales.sql 7.9 KB

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