Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.49 KB | None | 0 0
  1.  
  2. CREATE TABLE KartaLojalnosciowa(
  3. Imie Name NOT NULL,
  4. NazwiskoKlienta Name NOT NULL,
  5. LiczbaTransakcji NAME NOT NULL,
  6. LacznaKwotaTransakcji INT,
  7. KolorKarty NVARCHAR(9) NOT NULL
  8. )
  9.  
  10.  
  11. INSERT INTO KartaLojalnosciowa
  12. SELECT query.FirstName[Imie], LastName[Nazwisko], query.numberOfTransactions[Liczba transakcji], query.transactionsAmmount[Laczna kwota transakcji], query.color[Kolor karty] FROM(
  13. SELECT query.customerID, FirstName, LastName, query.numberOfTransactions, query.transactionsAmmount, query.color
  14. FROM (SELECT subQuery.CustomerID , SUM(subQuery.numberOfTransactions) numberOfTransactions, SUM(subQuery.transactionsAmmount) transactionsAmmount, 'Platynowa' color
  15. FROM (SELECT COUNT(CustomerID) numberOfTransactions, CustomerID, YEAR(OrderDate) orderYear, SUM(SubTotal) transactionsAmmount
  16. FROM Sales.SalesOrderHeader
  17. WHERE SubTotal > (SELECT AVG(SubTotal)*1.5
  18. FROM Sales.SalesOrderHeader)
  19. GROUP BY CustomerID, YEAR(OrderDate)
  20. HAVING COUNT(*) >= 2
  21. ) subQuery
  22. GROUP BY subQuery.CustomerID
  23. HAVING COUNT(subQuery.CustomerID) = (
  24. SELECT COUNT(DISTINCT YEAR(OrderDate))
  25. FROM Sales.SalesOrderHeader
  26. ))query JOIN
  27. Sales.Customer ON query.CustomerID = Customer.CustomerID
  28. JOIN Person.Person ON Person.BusinessEntityID = Customer.PersonID
  29.  
  30. UNION
  31.  
  32. SELECT sub_query.customerID, FirstName, LastName, numberOfTransactions, transactionsAmmount, color
  33. FROM(
  34. SELECT CustomerID, COUNT(*) numberOfTransactions, SUM(SubTotal) transactionsAmmount, 'Zlota' color
  35. FROM Sales.SalesOrderHeader
  36. WHERE SubTotal > (
  37. SELECT AVG(SubTotal)*1.5
  38. FROM Sales.SalesOrderHeader)
  39. AND CustomerID NOT IN (SELECT query.customerID
  40. FROM (SELECT subQuery.CustomerID , SUM(subQuery.numberOfTransactions) numberOfTransactions, SUM(subQuery.transactionsAmmount) transactionsAmmount, 'Platynowa' color
  41. FROM (SELECT COUNT(CustomerID) numberOfTransactions, CustomerID, YEAR(OrderDate) orderYear, SUM(SubTotal) transactionsAmmount
  42. FROM Sales.SalesOrderHeader
  43. WHERE SubTotal > (SELECT AVG(SubTotal)*1.5
  44. FROM Sales.SalesOrderHeader)
  45. GROUP BY CustomerID, YEAR(OrderDate)
  46. HAVING COUNT(*) >= 2
  47. ) subQuery
  48. GROUP BY subQuery.CustomerID
  49. HAVING COUNT(subQuery.CustomerID) = (
  50. SELECT COUNT(DISTINCT YEAR(OrderDate))
  51. FROM Sales.SalesOrderHeader
  52. ))query JOIN
  53. Sales.Customer ON query.CustomerID = Customer.CustomerID
  54. JOIN Person.Person ON Person.BusinessEntityID = Customer.PersonID)
  55. GROUP BY CustomerID
  56. HAVING COUNT(*) >= 2) sub_query JOIN Sales.Customer ON sub_query.CustomerID = Customer.CustomerID
  57. JOIN Person.Person ON Person.BusinessEntityID = Customer.PersonID
  58.  
  59. UNION
  60. SELECT sub_query.customerID, FirstName, LastName, numberOfTransactions, transactionsAmmount, color
  61. FROM(
  62. SELECT S.CustomerID, COUNT(*) numberOfTransactions, SUM(SubTotal) transactionsAmmount, 'Srebrna' color
  63. FROM Sales.SalesOrderHeader S
  64. WHERE NOT EXISTS (SELECT query.customerID, FirstName, LastName, query.numberOfTransactions, query.transactionsAmmount, query.color
  65. FROM (SELECT subQuery.CustomerID , SUM(subQuery.numberOfTransactions) numberOfTransactions, SUM(subQuery.transactionsAmmount) transactionsAmmount, 'Platynowa' color
  66. FROM (SELECT COUNT(CustomerID) numberOfTransactions, CustomerID, YEAR(OrderDate) orderYear, SUM(SubTotal) transactionsAmmount
  67. FROM Sales.SalesOrderHeader
  68. WHERE SubTotal > (SELECT AVG(SubTotal)*1.5
  69. FROM Sales.SalesOrderHeader)
  70. GROUP BY CustomerID, YEAR(OrderDate)
  71. HAVING COUNT(*) >= 2
  72. ) subQuery
  73. GROUP BY subQuery.CustomerID
  74. HAVING COUNT(subQuery.CustomerID) = (
  75. SELECT COUNT(DISTINCT YEAR(OrderDate))
  76. FROM Sales.SalesOrderHeader
  77. ))query JOIN
  78. Sales.Customer ON query.CustomerID = Customer.CustomerID
  79. JOIN Person.Person ON Person.BusinessEntityID = Customer.PersonID
  80. WHERE query.CustomerID = S.CustomerID)
  81. AND NOT EXISTS (SELECT sub_query.customerID, FirstName, LastName, numberOfTransactions, transactionsAmmount, color
  82. FROM(
  83. SELECT CustomerID, COUNT(*) numberOfTransactions, SUM(SubTotal) transactionsAmmount, 'Zlota' color
  84. FROM Sales.SalesOrderHeader
  85. WHERE SubTotal > (
  86. SELECT AVG(SubTotal)*1.5
  87. FROM Sales.SalesOrderHeader)
  88. AND CustomerID NOT IN (SELECT query.customerID
  89. FROM (SELECT subQuery.CustomerID , SUM(subQuery.numberOfTransactions) numberOfTransactions, SUM(subQuery.transactionsAmmount) transactionsAmmount, 'Platynowa' color
  90. FROM (SELECT COUNT(CustomerID) numberOfTransactions, CustomerID, YEAR(OrderDate) orderYear, SUM(SubTotal) transactionsAmmount
  91. FROM Sales.SalesOrderHeader
  92. WHERE SubTotal > (SELECT AVG(SubTotal)*1.5
  93. FROM Sales.SalesOrderHeader)
  94. GROUP BY CustomerID, YEAR(OrderDate)
  95. HAVING COUNT(*) >= 2
  96. ) subQuery
  97. GROUP BY subQuery.CustomerID
  98. HAVING COUNT(subQuery.CustomerID) = (
  99. SELECT COUNT(DISTINCT YEAR(OrderDate))
  100. FROM Sales.SalesOrderHeader
  101. ))query JOIN
  102. Sales.Customer ON query.CustomerID = Customer.CustomerID
  103. JOIN Person.Person ON Person.BusinessEntityID = Customer.PersonID)
  104. GROUP BY CustomerID
  105. HAVING COUNT(*) >= 2) sub_query JOIN Sales.Customer ON sub_query.CustomerID = Customer.CustomerID
  106. JOIN Person.Person ON Person.BusinessEntityID = Customer.PersonID
  107. WHERE sub_query.CustomerID = S.CustomerID)
  108. GROUP BY CustomerID
  109. HAVING COUNT(*) >= 5)
  110. sub_query JOIN Sales.Customer ON sub_query.CustomerID = Customer.CustomerID
  111. JOIN Person.Person ON Person.BusinessEntityID = Customer.PersonID)query
  112.  
  113.  
  114. TRUNCATE TABLE KartaLojalnosciowa
  115. DROP TABLE KartaLojalnosciowa
  116. SELECT * FROM KartaLojalnosciowa
  117. order by 2;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement