load.Aftersales.sql 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  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(decimal(28,8), CASE
  68. WHEN p.[Zuordnung] IN ('Mech.', 'Karo.', 'Lack', 'Elektr.') THEN s.[Amount]
  69. ELSE 0.0
  70. END) AS [Lohn],
  71. convert(decimal(28,8), CASE
  72. WHEN p.[Zuordnung] IN ('Teile') THEN s.[Amount]
  73. ELSE 0.0
  74. END) AS [Teile],
  75. convert(decimal(28,8), CASE
  76. WHEN p.[Zuordnung] IN ('Sonst.') THEN s.[Amount]
  77. ELSE 0.0
  78. END) AS [Sonst.],
  79. convert(decimal(28,8), CASE
  80. WHEN p.[Zuordnung] IN ('TÜV') THEN s.[Amount]
  81. ELSE 0.0
  82. END) AS [TÜV],
  83. convert(decimal(28,8), CASE
  84. WHEN p.[Zuordnung] IN ('Fremdl.') THEN s.[Amount]
  85. ELSE 0.0
  86. END) AS [Fremdl.],
  87. convert(decimal(28,8), CASE
  88. WHEN p.[Zuordnung] IN ('Mietw.') THEN s.[Amount]
  89. ELSE 0.0
  90. END) AS [Mietw.],
  91. convert(decimal(28,8), CASE
  92. WHEN p.[Zuordnung] IN ('Mech.', 'Karo.', 'Lack', 'Elektr.') THEN s.[Line Discount Amount]
  93. ELSE 0.0
  94. END) AS [NL Lohn],
  95. convert(decimal(28,8), CASE
  96. WHEN p.[Zuordnung] IN ('Teile') THEN s.[Line Discount Amount]
  97. ELSE 0.0
  98. END) AS [NL Teile],
  99. convert(decimal(28,8), CASE
  100. WHEN p.[Zuordnung] IN ('Teile') THEN (s.[Quantity] * s.[Unit Cost (lcy)])
  101. ELSE 0.0
  102. END) AS [EW Teile],
  103. convert(decimal(28,8), CASE
  104. WHEN p.[Zuordnung] IN ('Fremdl.') THEN (s.[Quantity] * s.[Unit Cost (lcy)])
  105. ELSE 0.0
  106. END) AS [EW Fremdl.],
  107. convert(decimal(28,8), CASE
  108. WHEN s.[Service Order No] <> 'Gutschrift ohne Auftrag'
  109. THEN (1.0 / COUNT(s.[Client_DB]) OVER (PARTITION BY s.[Service Order No]))
  110. ELSE 0.0
  111. END) AS [DG],
  112. convert(decimal(28,8), (
  113. CASE WHEN p.[Zuordnung] IN ('Mech.', 'Karo.', 'Lack', 'Elektr.') THEN s.[Amount] ELSE 0.0 END +
  114. CASE WHEN p.[Zuordnung] IN ('Teile') THEN s.[Amount] ELSE 0.0 END +
  115. CASE WHEN p.[Zuordnung] IN ('Sonst.') THEN s.[Amount] ELSE 0.0 END +
  116. CASE WHEN p.[Zuordnung] IN ('TÜV') THEN s.[Amount] ELSE 0.0 END +
  117. CASE WHEN p.[Zuordnung] IN ('Fremdl.') THEN s.[Amount] ELSE 0.0 END +
  118. CASE WHEN p.[Zuordnung] IN ('Mietw.') THEN s.[Amount] ELSE 0.0 END
  119. )) AS [Gesamt],
  120. convert(decimal(28,8), ISNULL(t.[ben. Std. Auftrag], 0)) AS [ben. Std. Auftrag_gesamt],
  121. 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],
  122. convert(date, s.[Invoice Date]) AS [Datum],
  123. convert(varchar(20), FORMAT(s.[Invoice Date], 'yyyy/MM')) AS [Jahr/Monat],
  124. CAST(GETDATE() AS DATE) AS [Aktueller Tag],
  125. convert(date, (DATEADD(month, DATEDIFF(month, 0, s.[Invoice Date]), 0))) AS [Monatserster],
  126. EOMONTH(s.[Invoice Date]) AS Monatsletzter,
  127.     convert(varchar(100),'("' +
  128.     CONVERT(varchar, DATEADD(month, DATEDIFF(month, 0, s.[Invoice Date]), 0), 23) +
  129.     '","' +
  130.     CONVERT(varchar, EOMONTH(s.[Invoice Date]), 23) +
  131.     '")') AS MUN_DATE,
  132. convert(varchar(50), CONVERT(varchar, DATEADD(month, DATEDIFF(month, 0, s.[Invoice Date]), 0), 112) +
  133. '-' +
  134. CONVERT(varchar, EOMONTH(s.[Invoice Date]), 112)) AS Mitgliedsname,
  135. DATEFROMPARTS(YEAR(s.[Invoice Date]), 1, 1) AS [Beginn Geschäftsjahr],
  136. convert(varchar(20), FORMAT(s.[Invoice Date], 'MMM', 'de') + './' + FORMAT(s.[Invoice Date], 'yyyy', 'de')) AS Monat_Jahr,
  137. convert(varchar(20), FORMAT(s.[Invoice Date], 'yyyy')) AS [Jahr],
  138. convert(varchar(20), FORMAT(s.[Invoice Date], 'MM')) AS [Monat],
  139. FORMAT(s.[Invoice Date], 'MMM', 'de-DE') AS [Monat_kurz]
  140. FROM [GC_ETL_ARI].[load].[Service_gesamt] s
  141. LEFT JOIN [GC_ETL_ARI].[x_data].[Produktbuchungsgruppe] p
  142. ON s.[Client_DB] = p.[Client_DB]
  143. AND s.[Gen Prod Posting Group] = p.[Gen_ Prod_ Posting Group]
  144. LEFT JOIN [GC_ETL_ARI].[x_data].[Marke] m
  145. ON s.[Make Code] = m.[Make Code]
  146. LEFT JOIN [GC_ETL_ARI].[transform_basis].[Location_Standort] l
  147. ON s.[Client_DB] = l.[Client_DB]
  148. AND s.[Location Code] = l.[Location Code]
  149. LEFT JOIN [GC_ETL_ARI].[temp].[Time_Clock_Entry_fuer_ben_AW_Auftrag] t
  150. ON s.[Client_DB] = t.[Client_DB]
  151. AND s.[Service Order No] = t.[Service Order No_]
  152. LEFT JOIN [GC_ETL_ARI].[transform].[Auftraege_Serviceberater_Mitarbeiter] a
  153. ON s.[Client_DB] = a.[Client_DB]
  154. AND s.[Service Order No] = a.[No_]
  155. LEFT JOIN [GC_ETL_ARI].[transform_basis].[User_Mitarbeiter] u
  156. ON s.[Client_DB] = u.[Client_DB]
  157. AND s.[User ID] = u.[User ID]
  158. GO
  159. SET QUOTED_IDENTIFIER OFF
  160. GO
  161. SET ANSI_NULLS OFF
  162. GO
  163. GO