Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1.  
  2.  
  3.  
  4. create procedure filterByYear
  5. as
  6. CREATE TABLE #temp2014 ( Mesec INT, BrojKrediti INT, SumaKrediti DECIMAL(18,2), ProsecnaKamata DECIMAL(18,2))
  7. INSERT INTO #temp2014 ( Mesec, BrojKrediti, SumaKrediti, ProsecnaKamata )
  8. SELECT MONTH(AgreementDate), COUNT(loLoanID), SUM(LoanAmountCurrent), AVG(InterestRateCurrent) FROM loLoan WHERE YEAR(AgreementDate) = 2014 GROUP BY MONTH(AgreementDate)
  9.  
  10. CREATE TABLE #temp2015 ( Mesec INT, BrojKrediti INT, SumaKrediti DECIMAL(18,2), ProsecnaKamata DECIMAL(18,2))
  11. INSERT INTO #temp2015 ( Mesec, BrojKrediti, SumaKrediti, ProsecnaKamata )
  12. SELECT MONTH(AgreementDate), COUNT(loLoanID), SUM(LoanAmountCurrent), AVG(InterestRateCurrent) FROM loLoan WHERE YEAR(AgreementDate) = 2015 GROUP BY MONTH(AgreementDate)
  13.  
  14. CREATE TABLE #temp2016 ( Mesec INT, BrojKrediti INT, SumaKrediti DECIMAL(18,2), ProsecnaKamata DECIMAL(18,2))
  15. INSERT INTO #temp2016 ( Mesec, BrojKrediti, SumaKrediti, ProsecnaKamata )
  16. SELECT MONTH(AgreementDate), COUNT(loLoanID), SUM(LoanAmountCurrent), AVG(InterestRateCurrent) FROM loLoan WHERE YEAR(AgreementDate) = 2016 GROUP BY MONTH(AgreementDate)
  17.  
  18. CREATE TABLE #Final ( Naziv NVARCHAR(MAX), [2014] INT, [2015] INT, [2016] INT )
  19. INSERT INTO #Final ( Naziv )
  20. SELECT 'NumberOfLoans' UNION
  21. SELECT 'AmountLoan' UNION
  22. SELECT 'AvgMargin'
  23.  
  24. DECLARE @MaxLoans INT, @MaxAmount DECIMAL(18,2), @MaxInterest DECIMAL(18,2)
  25. DECLARE @MonthLoans INT, @MonthAmount INT, @MonthInterest INT
  26.  
  27. SELECT @MaxLoans = MAX(BrojKrediti), @MaxAmount = MAX(SumaKrediti), @MaxInterest = MAX(ProsecnaKamata) FROM #temp2014
  28. SELECT @MonthLoans = Mesec FROM #temp2014 WHERE BrojKrediti = @MaxLoans
  29. SELECT @MonthAmount = Mesec FROM #temp2014 WHERE SumaKrediti = @MaxAmount
  30. SELECT @MonthInterest = Mesec FROM #temp2014 WHERE ProsecnaKamata = @MaxInterest
  31. UPDATE #Final SET [2014] = @MonthLoans WHERE Naziv = 'NumberOfLoans'
  32. UPDATE #Final SET [2014] = @MonthAmount WHERE Naziv = 'AmountLoan'
  33. UPDATE #Final SET [2014] = @MonthInterest WHERE Naziv = 'AvgMargin'
  34.  
  35. SELECT @MaxLoans = MAX(BrojKrediti), @MaxAmount = MAX(SumaKrediti), @MaxInterest = MAX(ProsecnaKamata) FROM #temp2015
  36. SELECT @MonthLoans = Mesec FROM #temp2015 WHERE BrojKrediti = @MaxLoans
  37. SELECT @MonthAmount = Mesec FROM #temp2015 WHERE SumaKrediti = @MaxAmount
  38. SELECT @MonthInterest = Mesec FROM #temp2015 WHERE ProsecnaKamata = @MaxInterest
  39. UPDATE #Final SET [2015] = @MonthLoans WHERE Naziv = 'NumberOfLoans'
  40. UPDATE #Final SET [2015] = @MonthAmount WHERE Naziv = 'AmountLoan'
  41. UPDATE #Final SET [2015] = @MonthInterest WHERE Naziv = 'AvgMargin'
  42.  
  43. SELECT @MaxLoans = MAX(BrojKrediti), @MaxAmount = MAX(SumaKrediti), @MaxInterest = MAX(ProsecnaKamata) FROM #temp2016
  44. SELECT @MonthLoans = Mesec FROM #temp2016 WHERE BrojKrediti = @MaxLoans
  45. SELECT @MonthAmount = Mesec FROM #temp2016 WHERE SumaKrediti = @MaxAmount
  46. SELECT @MonthInterest = Mesec FROM #temp2016 WHERE ProsecnaKamata = @MaxInterest
  47. UPDATE #Final SET [2016] = @MonthLoans WHERE Naziv = 'NumberOfLoans'
  48. UPDATE #Final SET [2016] = @MonthAmount WHERE Naziv = 'AmountLoan'
  49. UPDATE #Final SET [2016] = @MonthInterest WHERE Naziv = 'AvgMargin'
  50.  
  51. SELECT * FROM #Final
  52.  
  53. DROP TABLE #temp2014
  54. DROP TABLE #temp2015
  55. DROP TABLE #temp2016
  56. DROP TABLE #Final
  57.  
  58. go
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement