load.V_Verkauf.sql 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. SET QUOTED_IDENTIFIER ON
  2. GO
  3. SET ANSI_NULLS ON
  4. GO
  5. CREATE VIEW [load].[V_Verkauf]
  6. AS
  7. SELECT convert(varchar(20), [Client_DB]) AS [Client_DB]
  8. , convert(varchar(20), [Konto-Nr]) AS [Konto-Nr]
  9. , convert(decimal(28, 8), [Amount]) AS [Amount]
  10. , convert(decimal(28, 8), [Betrag]) AS [Betrag]
  11. -- [Summe Betrag] und [Summe Erlös FZG] dienen nur als Filter
  12. -- , convert(decimal(28, 8), [Summe Betrag]) AS [Summe Betrag]
  13. -- , convert(decimal(28, 8), [Summe Erlös FZG]) AS [Summe Erlös FZG]
  14. , convert(varchar(20), [Branch Code]) AS [Branch Code]
  15. , convert(varchar(20), [Location Code]) AS [Location Code]
  16. , convert(varchar(20), [Vin]) AS [Vin]
  17. , convert(varchar(20), [Book No]) AS [Book No]
  18. , convert(varchar(10), [Vehicle Status]) AS [Vehicle Status]
  19. , convert(varchar(10), [Old Vehicle Status]) AS [Old Vehicle Status]
  20. , convert(varchar(20), [Make Code_Vehicle]) AS [Make Code_Vehicle]
  21. , convert(varchar(20), [Model]) AS [Model]
  22. , convert(varchar(50), [Modellbez]) AS [Modellbez]
  23. , convert(varchar(20), [Vat Prod Posting Group]) AS [Vat Prod Posting Group]
  24. , convert(varchar(20), [Inventory Posting Group]) AS [Inventory Posting Group]
  25. , convert(varchar(20), [Fahrzeugart]) AS [Fahrzeugart]
  26. , convert(varchar(20), [Fahrzeugtyp]) AS [Fahrzeugtyp]
  27. , convert(varchar(200), left([FZG], 200)) AS [FZG]
  28. , convert(varchar(100), [VB_Einkauf]) AS [VB_Einkauf]
  29. , convert(decimal(28, 8), [Standtage_ori]) AS [Standtage_ori]
  30. , convert(varchar(20), [Standtagestaffel]) AS [Standtagestaffel]
  31. , convert(decimal(28, 8), [Standtage]) AS [Standtage]
  32. , convert(datetime, [Invoice Date]) AS [Invoice Date]
  33. , convert(varchar(200), [Kunde]) AS [Kunde]
  34. , convert(varchar(50), [Kundenart]) AS [Kundenart]
  35. , convert(varchar(200), [Kunde_FZG_Dashboard]) AS [Kunde_FZG_Dashboard]
  36. , convert(varchar(200), [Kunde_FZG]) AS [Kunde_FZG]
  37. , convert(varchar(200), [Vorbesitzer]) AS [Vorbesitzer]
  38. , convert(varchar(100), [Verkäufer]) AS [Verkäufer]
  39. , convert(varchar(200), [Beleg]) AS [Beleg]
  40. , convert(varchar(200), left([FZG_Detail], 200)) AS [FZG_Detail]
  41. , convert(varchar(100), [Konto]) AS [Konto]
  42. , convert(decimal(28, 8), [Menge]) AS [Menge]
  43. , convert(int, [Tag]) AS [Tag]
  44. , convert(int, [Monat]) AS [Monat]
  45. , convert(int, [Jahr]) AS [Jahr]
  46. , convert(varchar(20), [Bereich Umsatz]) AS [Bereich Umsatz]
  47. , convert(varchar(50), [Ebene1]) AS [Ebene1]
  48. , convert(varchar(50), [Ebene2]) AS [Ebene2]
  49. , convert(varchar(50), [Ebene3]) AS [Ebene3]
  50. , convert(varchar(50), [Ebene4]) AS [Ebene4]
  51. , convert(varchar(50), [Ebene5]) AS [Ebene5]
  52. , convert(decimal(28, 8), [Erlös FZG]) AS [Erlös FZG]
  53. , convert(decimal(28, 8), [Einsatz FZG]) AS [Einsatz FZG]
  54. , convert(decimal(28, 8), [Boni]) AS [Boni]
  55. , convert(decimal(28, 8), [Instandsetz. ges.]) AS [Instandsetz. ges.]
  56. , convert(varchar(20), [Fabrikat]) AS [Fabrikat]
  57. , convert(int, [Fabrikat_Sortierung]) AS [Fabrikat_Sortierung]
  58. , convert(varchar(20), [Hauptbetrieb_ID]) AS [Hauptbetrieb_ID]
  59. , convert(varchar(50), [Hauptbetrieb_Name]) AS [Hauptbetrieb_Name]
  60. , convert(varchar(20), [Standort_ID]) AS [Standort_ID]
  61. , convert(varchar(50), [Standort_Name]) AS [Standort_Name]
  62. , convert(date, [Datum]) AS [Datum]
  63. , convert(varchar(20), [Jahr/Monat]) AS [Jahr/Monat]
  64. , convert(date, [Aktueller Tag]) AS [Aktueller Tag]
  65. , convert(date, [Monatserster]) AS [Monatserster]
  66. , convert(date, [Monatsletzter]) AS [Monatsletzter]
  67. , convert(varchar(100), [MUN_DATE]) AS [MUN_DATE]
  68. , convert(varchar(50), [Mitgliedsname]) AS [Mitgliedsname]
  69. , convert(date, [Beginn Geschäftsjahr]) AS [Beginn Geschäftsjahr]
  70. , convert(varchar(20), [Monat_Jahr]) AS [Monat_Jahr]
  71. , convert(varchar(20), [Monat_kurz]) AS [Monat_kurz]
  72. FROM (SELECT [VK].[Client_DB] AS [Client_DB]
  73. , [VK].[Vin] AS [Vin]
  74. , [VK].[Book No] AS [Book No]
  75. , sum([VK].[Betrag]) OVER (PARTITION BY [VK].[Client_DB], [VK].[Vin], [VK].[Book No]) AS [Summe Betrag]
  76. , sum(iif([K].[Ebene1] IN (N'Umsatzerlöse'), [VK].[Betrag] * -1, 0.0)) OVER (PARTITION BY [VK].[Client_DB], [VK].[Vin], [VK].[Book No]) AS [Summe Erlös FZG]
  77. -- Standtage und Menge geteilt durch die Anzahl der Rechnungspositionen
  78. , [VK].[Standtage_ori] * 1.0 / count(*) OVER (PARTITION BY [VK].[Client_DB], [VK].[Vin], [VK].[Book No]) AS [Standtage]
  79. , 1.0 / count(*) OVER (PARTITION BY [VK].[Client_DB], [VK].[Vin], [VK].[Book No]) AS [Menge]
  80. , [VK].[No] AS [Konto-Nr]
  81. , [VK].[Amount] AS [Amount]
  82. , [VK].[Betrag] AS [Betrag]
  83. , [VK].[Branch Code] AS [Branch Code]
  84. , [VK].[Location Code] AS [Location Code]
  85. , [VK].[Vehicle Status] AS [Vehicle Status]
  86. , [VK].[Old Vehicle Status] AS [Old Vehicle Status]
  87. -- n.[Hauptbetrieb],
  88. , [VK].[Make Code_Vehicle] AS [Make Code_Vehicle]
  89. , [VK].[Model] AS [Model]
  90. , [VK].[Modellbez] AS [Modellbez]
  91. , [VK].[Vat Prod Posting Group] AS [Vat Prod Posting Group]
  92. , [VK].[Inventory Posting Group] AS [Inventory Posting Group]
  93. -- , [n].[Fahrzeugart] AS [Fahrzeugart_alt]
  94. -- , [n].[Fahrzeugtyp] AS [Fahrzeugtyp_alt]
  95. , [FT].[Zuordnung_Fahrzeugart] AS [Fahrzeugart]
  96. , [FT].[Inventory Posting Group] AS [Fahrzeugtyp]
  97. -- convert(varchar(100), n.[FZG]) as [FZG],
  98. , right([VK].[VIN], 7) + ' / ' + isnull([VK].[Model], 'n.N.') + ' / ' + isnull([VK].[Branch Code], 'n.N.') + ' / ' + isnull([VK].[Kunde], 'n.N.') AS [FZG]
  99. , [VK].[VB_Einkauf] AS [VB_Einkauf]
  100. , [VK].[Standtage_ori] AS [Standtage_ori]
  101. , [VK].[Standtagestaffel] AS [Standtagestaffel]
  102. -- convert(decimal(28,8), n.[Standtage]) as [Standtage],
  103. , [VK].[Invoice Date] AS [Invoice Date]
  104. , isnull([VK].[Kunde], 'n.N.') AS [Kunde]
  105. , isnull([VK].[Kundenart], 'n.N.') AS [Kundenart]
  106. , isnull([FK].[Kunde_FZG_Dashboard], 'n.N.') AS [Kunde_FZG_Dashboard]
  107. , isnull([FK].[Kunde_FZG], 'n.N.') AS [Kunde_FZG]
  108. , [VK].[Vorbesitzer] AS [Vorbesitzer]
  109. ,
  110. -- n.[Erlös] AS [Erlös_alt],
  111. -- n.[Einsatz] AS [Einsatz_alt],
  112. -- n.[Bonus] AS [Bonus_alt],
  113. -- n.[int. Kosten] AS [int. Kosten_alt],
  114. -- n.[Fabrikat],
  115. isnull([VK].[Verkäufer], 'n.N.') AS [Verkäufer]
  116. , [VK].[Beleg] AS [Beleg]
  117. ,
  118. -- n.[Standort],
  119. -- convert(varchar(200), n.[FZG_Detail]) as [FZG_Detail],
  120. isnull([VK].[VIN], 'n.N.') + ' - ' + isnull([VK].[Location Code], 'n.N.') + ' - ' + isnull([VK].[Fahrzeugtyp], 'n.N.') + ' - ' + isnull([VK].[Verkäufer], 'n.N.') + ' - ' + isnull([VK].[Kunde], 'n.N.') + ' - ' +
  121. isnull(format([VK].[Invoice Date], 'dd.MM.yyyy'), 'n.N.') AS [FZG_Detail]
  122. , [VK].[Konto] AS [Konto]
  123. -- n.[Menge_final],
  124. , [VK].[Bereich Umsatz] AS [Bereich Umsatz]
  125. , [K].[Ebene1] AS [Ebene1]
  126. , [K].[Ebene2] AS [Ebene2]
  127. , [K].[Ebene3] AS [Ebene3]
  128. , [K].[Ebene4] AS [Ebene4]
  129. , [K].[Ebene5] AS [Ebene5]
  130. , iif([K].[Ebene1] IN (N'Umsatzerlöse'), [VK].[Betrag] * -1, 0.0) AS [Erlös FZG]
  131. , iif([K].[Ebene1] IN ('Materialaufwand'), [VK].[Betrag], 0.0) AS [Einsatz FZG]
  132. , iif([K].[Ebene1] IN ('Materialaufwand') AND left([K].[Ebene3], 4) IN ('2080', '2140', '3001', '3081'), [VK].[Betrag] * -1, 0.0) AS [Boni]
  133. , iif([K].[Ebene1] IN ('Kosten'), [VK].[Betrag], 0.0) AS [Instandsetz. ges.]
  134. , isnull([Marke].[Fabrikat], 'Fremd') AS [Fabrikat]
  135. , [Marke].[Fabrikat_Sortierung] AS [Fabrikat_Sortierung]
  136. , [Standort].[Hauptbetrieb_ID] AS [Hauptbetrieb_ID]
  137. , [Standort].[Hauptbetrieb_Name] AS [Hauptbetrieb_Name]
  138. , [Standort].[Standort_ID] AS [Standort_ID]
  139. , [Standort].[Standort_Name] AS [Standort_Name]
  140. , [VK].[Invoice Date] AS [Datum]
  141. , getdate() AS [Aktueller Tag]
  142. , [Kalender].[Jahr/Monat]
  143. , [Kalender].[Monatserster]
  144. , [Kalender].[Monatsletzter]
  145. , [Kalender].[MUN_DATE]
  146. , [Kalender].[Mitgliedsname]
  147. , [Kalender].[Beginn Geschäftsjahr]
  148. , [Kalender].[Monat_Jahr]
  149. , [Kalender].[Jahr]
  150. , [Kalender].[Monat]
  151. , [Kalender].[Tag]
  152. , [Kalender].[Monat_kurz]
  153. FROM [transform].[NW_GW_VK_TIM] [VK]
  154. INNER JOIN [x_data].[Fahrzeugtyp] [FT] ON [FT].[Inventory Posting Group] = [VK].[Inventory Posting Group]
  155. INNER JOIN [x_data].[Kontenrahmen] [K] ON [K].[Konto_Nr] = [VK].[No]
  156. LEFT JOIN [x_data].[Marke] [Marke] ON [VK].[Make Code_Vehicle] = [Marke].[Make Code]
  157. LEFT JOIN [x_data].[AH_Standort] [Standort] ON [VK].[Client_DB] = [Standort].[Client_DB]
  158. AND [VK].[Location Code] = [Standort].[Branch Code]
  159. LEFT JOIN [temp].[Fahrzeug_Kunde] [FK] ON [VK].[Client_DB] = [FK].[Client_DB]
  160. AND [VK].[Vin] = [FK].[VIN]
  161. LEFT JOIN [transform].[Kalender_C11] [Kalender] ON [VK].[Invoice Date] = [Kalender].[Datum]
  162. WHERE [FT].[Zuordnung_Fahrzeugart] IN ('NA', 'GA')
  163. AND ([K].[Ebene2] IN (N'Umsatzerlöse NA', N'Umsatzerlöse GA', 'Materialaufwand NA', 'Materialaufwand GA') OR [K].[Ebene3] IN ('1 - NA', '2 - GA'))) AS [V1]
  164. WHERE
  165. -- Stornierte Fahrzeuge werden herausgefiltert (Rechnung - Gutschrift = 0)
  166. [Summe Betrag] <> 0
  167. -- interne Verbuchungen mit Rundungsfehler (10 Cent Toleranz)
  168. AND ([Summe Erlös FZG] < -0.1 OR [Summe Erlös FZG] > 0.1)
  169. GO
  170. SET QUOTED_IDENTIFIER OFF
  171. GO
  172. SET ANSI_NULLS OFF
  173. GO
  174. GO