Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.38 KB | None | 0 0
  1. -- 1
  2. select Bezeichnung from Dim.ProduktTyp
  3. order by Bezeichnung asc;
  4. -- 2
  5. select Bezeichnung from dim.ProduktTyp
  6. where Bezeichnung like '%Mountain%'
  7. order by Bezeichnung asc;
  8.  
  9. select B.bezeichnung as Mountain
  10. ,COUNT(p.produktid) as [Anzahl Produkte]
  11. from Dim.ProduktTyp as b
  12. left join Stamm.Produkt as p
  13. on b.ProduktTypID = p.ProduktTypID
  14. where b.Bezeichnung like '%Mountain%'
  15. group by b.Bezeichnung
  16. order by [Anzahl Produkte] DESC;
  17. -- 4
  18. select B.bezeichnung as Mountain
  19. ,COUNT(p.produktid) as [Anzahl Produkte]
  20. from Dim.ProduktTyp as b
  21. left join Stamm.Produkt as p
  22. on b.ProduktTypID = p.ProduktTypID
  23. where b.Bezeichnung like '%Mountain%'
  24. group by b.Bezeichnung
  25. having count(p.produktid) = 0
  26. order by [Anzahl Produkte] DESC;
  27. --5
  28. select DENSE_RANK() over (order by COUNT(p.produktid)DESC)AS RANG ,
  29. B.bezeichnung as Mountain
  30. ,COUNT(p.produktid) as [Anzahl Produkte]
  31. from Dim.ProduktTyp as b
  32. left join Stamm.Produkt as p
  33. on b.ProduktTypID = p.ProduktTypID
  34. where b.bezeichnung like '%Mountain%'
  35. group by b.Bezeichnung;
  36.  
  37. -- 2/1
  38. select Bezeichnung from dim.ProduktKategorie
  39. order by Bezeichnung asc;
  40. -- 2/2
  41. select
  42. count(*) as [Anzahl Kategorien]
  43. from dim.ProduktKategorie
  44. -- 2/3
  45. select bezeichnung from dim.ProduktKategorie
  46. where OberKategorieID IS NULL
  47. -- 2/4
  48. select
  49. count(*) as [Anzahl Oberkategorien] from dim.ProduktKategorie
  50. where OberKategorieID IS NULL
  51. group by OberKategorieID
  52.  
  53. -- 2/5
  54. select K.bezeichnung as Oberkategorie,
  55. B.bezeichnung as unterkategorie
  56. from Dim.ProduktKategorie as k
  57. join Dim.ProduktKategorie as b
  58. on b.OberKategorieID = k.ProduktKategorieID
  59. order by Oberkategorie, unterkategorie;
  60. --2/6
  61. select K.bezeichnung as oberkategorie,
  62. B.bezeichnung as Unterkategorie
  63. ,COUNT(p.produktid) as [Anzahl Produkte]
  64. from Dim.ProduktKategorie as k
  65. join Dim.ProduktKategorie as b
  66. on b.OberKategorieID = k.ProduktKategorieID
  67. left join Stamm.Produkt as p
  68. on p.ProduktKategorieID = b.ProduktKategorieID
  69. group by k.Bezeichnung, b.Bezeichnung
  70. order by oberkategorie, Unterkategorie
  71. -- 2/8
  72. Select top 1 b.bezeichnung as unterkategorie
  73. from dim.produktkategorie as a
  74. join dim.produktkategorie as b
  75. on b.oberkategorieid = A.produktkategorieid
  76. left join stamm.produkt as p
  77. on P.produktkategorieid = b.produktkategorieid
  78. group by a.bezeichnung, b.bezeichnung
  79. order by COUNT(p.produktid) desc;
  80. -- 2/9
  81. with unterabfrage1 as (
  82. select b.bezeichnung AS OBERKATEGORIE
  83. , u.bezeichnung as unterkategorie
  84. , count(p.produktid) as [Anzahl Produkte]
  85. from dim.produktkategorie as b
  86. join dim.produktkategorie as u
  87. on u.oberkategorieid = b.oberkategorieID
  88. left join stamm.produkt as p
  89. on p.produktkategorieid = u.produktkategorieId
  90. group by b.bezeichnung, u.bezeichnung
  91. ),
  92. Unterabfrage2 as ( Select top 1 unterkategorie
  93. from unterabfrage1
  94. order by [Anzahl Produkte] desc
  95. )
  96. SELECT p.farbe
  97. , p.groesse as Größe
  98. , p.bezeichnung as ProduktBezeichnung
  99. , p.produktnummer
  100. , p.verkaufspreis
  101. from stamm.produkt as p
  102. join dim.produktkategorie as k
  103. on p.produktkategorieid = k.produktkategorieid
  104. where k.bezeichnung = (Select unterkategorie from Unterabfrage2)
  105. order by farbe,größe,Produktbezeichnung;
  106.  
  107. -- 2/10
  108. select format(sum(d.bestellmenge*d.einzelpreis), 'N2') as [Umsatz]
  109. from verkauf.bestelldetail as d
  110. join stamm.produkt as p
  111. on d.produktid = p.produktid
  112. join dim.produktkategorie as k
  113. on p.produktkategorieid = k.produktkategorieid
  114. and k.bezeichnung = 'Mountain Bikes';
  115. -- 2/11
  116. select year(b.bestelldatum) as Geschaeftsjahr
  117. ,format(sum(d.bestellmenge*d.einzelpreis), 'N2') as [Umsatz]
  118. from verkauf.bestellung as b
  119. join verkauf.bestelldetail as d
  120. on b.bestellungid = d.bestellungid
  121. join stamm.produkt as p
  122. on d.produktid = p.produktid
  123. join dim.produktkategorie as k
  124. on p.produktkategorieid = k.produktkategorieid
  125. and k.bezeichnung = 'Mountain Bikes'
  126. group by year(b.bestelldatum);
  127.  
  128.  
  129. -- 2/12
  130. -- 2/13
  131. -- 2/14
  132.  
  133. -- 1/3
  134. select Stadt,
  135. COUNT(*) as [Anzahl Kunden] from CR.Kunde
  136. where Land = 'Canada'
  137. group by Stadt, Land
  138. having COUNT(*) > 4
  139. order by [Anzahl Kunden] desc;
  140.  
  141. -- 2/3
  142. select firma
  143. from cr.kunde
  144. where stadt = (select stadt
  145. from cr.kunde
  146. where firma = 'futuristic bikes')
  147. except
  148. select 'futuristic bikes';
  149.  
  150. -- 3/3
  151.  
  152. select b.KundenNr, k.firma, C.Bestellmenge as [Anzahl Bestellungen],
  153. (sum (c.Einzelpreis * c.bestellmenge)) as Umsatz
  154. from CR.Kunde as k
  155. join Verkauf.Bestellung as b
  156. on k.KundenNr = b.KundenNr
  157. join Verkauf.BestellDetail as c
  158. on b.bestellungid = c.bestellungid
  159. group by b.KundenNr, k.firma,c.bestellmenge
  160. order by Umsatz desc;
  161. -- 4/3
  162. select bestellungid
  163. , cast(bestelldatum as date) as Bestelldatum
  164. from verkauf.bestellung
  165. where versanddatum is null and year(bestelldatum) = 2018
  166. order by bestellungid;
  167. -- 6/3
  168. select bestellungid
  169. ,cast(Bestelldatum as date) as bestelldatum
  170. ,cast(Versanddatum as Date) as Versanddatum
  171. ,datediff(d, Bestelldatum, Versanddatum) AS [Tage bis Versand]
  172. , case
  173. when datediff(d,Bestelldatum,Versanddatum) < 3 then 'gut'
  174. when datediff(d, bestelldatum,Versanddatum) <= 5 then 'ok'
  175. else 'schlecht'
  176. end as Bewertung
  177. from verkauf.bestellung
  178. where Versanddatum is not null
  179. and year(bestelldatum) = 2018
  180. order by BestellungID;
  181. -- 1/4
  182. select p.mitarbeiterid
  183. , p.nachname
  184. , p.vorname
  185. ,FORMAT(sum(d.einzelpreis*d.bestellmenge),'N2') as UmsatzQ4
  186. from personal.mitarbeiter as p
  187. left join verkauf.bestellung as b
  188. on p.mitarbeiterid = b.mitarbeiterid
  189. and b.bestelldatum >= '20181001'
  190. and b.bestelldatum < '20190101'
  191. join verkauf.bestelldetail as d
  192. on b.bestellungid = d.bestellungid
  193. group by p.mitarbeiterid, p.nachname, p.vorname
  194. order by p.nachname, p.vorname
  195.  
  196. --2/4
  197. with umsatzdaten as(select p.mitarbeiterid
  198. , p.nachname
  199. , p.vorname
  200. ,sum(d.einzelpreis*d.bestellmenge) as Umsatz
  201. from personal.mitarbeiter as p
  202. left join verkauf.bestellung as b
  203. on p.mitarbeiterid = b.mitarbeiterid
  204. and b.bestelldatum >= '20181001'
  205. and b.bestelldatum < '20190101'
  206. join verkauf.bestelldetail as d
  207. on b.bestellungid = d.bestellungid
  208. group by p.mitarbeiterid, p.nachname, p.vorname)
  209. Select mitarbeiterid
  210. ,nachname
  211. ,vorname
  212. ,format(umsatz, 'N2') as umsatz
  213. ,case
  214. when umsatz >= 150000 then 25
  215. when umsatz >= 100000 then 20
  216. when umsatz >= 50000 then 10
  217. else 5
  218. end as Provision
  219. ,format (case
  220. when umsatz >= 150000 then umsatz*0.25
  221. when umsatz >= 100000 then umsatz*0.2
  222. when umsatz >= 50000 then umsatz*0.1
  223. else umsatz*0.05 end,'N2') as Provision
  224. from umsatzdaten
  225. order by nachname, vorname;
  226. --1/5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement