Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. import pyodbc
  2. import matplotlib.pyplot as plt
  3.  
  4. #DB Connection
  5. def dbGetConnection():
  6. server = 'rooftopsqlserveras.database.windows.net'
  7. database = 'Rooftop'
  8. username = 'rooftopreader@rooftopsqlserveras'
  9. password = '!one#0oftp'
  10. driver= '{ODBC Driver 13 for SQL Server}'
  11. cnxn = pyodbc.connect('DRIVER='+driver+';PORT=1433;SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+ password)
  12. connection = cnxn.cursor()
  13. return connection
  14.  
  15. def plotRoomTotal(connection,roomkey):
  16. x_beoordeling = []
  17. y_SumCount = []
  18. query = ("SELECT Mn.PartitionKey, Mn.RoomKey, Mn.Value, Mp.CloseDateTime, Mn.MeasureDateTime, "
  19. "SUM(ZM.Count) AS SumCount, MAX(ZM.Count) AS MaxValue, COUNT(ZM.Count) AS CountsCount, "
  20. "CASE WHEN SUM(ZM.Count)=0 THEN 0 ELSE SUM(ZM.Count)/COUNT(CASE WHEN ZM.Count>1 THEN 1 ELSE NULL END) end AS Mean, "
  21. "MIN(ZM.MeasureDateTime) AS IntervalMin, MAX(ZM.MeasureDateTime) AS IntervalMax "
  22. "FROM dbo.Measure Mn OUTER APPLY "
  23. "(SELECT TOP 1 CloseDateTime FROM Measure Mi WHERE Mi.RoomId = Mn.RoomId AND Mi.CloseDateTime < Mn.MeasureDateTime ORDER BY CloseDateTime DESC) Mp "
  24. "JOIN Room R ON Mn.RoomId = R.Id "
  25. "JOIN ZoneMeasure ZM ON R.ZoneId = ZM.ZoneId AND ZM.MeasureDateTime BETWEEN Mp.CloseDateTime AND Mn.MeasureDateTime "
  26. "WHERE Mn.Roomkey IN ('213','214','217','218','221','226','313','314','317','318','321','326')"
  27. "GROUP BY Mn.PartitionKey, Mn.RoomKey, Mn.Value, Mp.CloseDateTime, Mn.MeasureDateTime ")
  28. connection.execute(query)
  29. rows = connection.fetchall()
  30. for row in rows:
  31. one = []
  32. two = []
  33. three = []
  34. #Split in 3 buckets
  35. if row[2] is 1:
  36. one.append(row[2])
  37. if row[2] is 2:
  38. two.append(row[2])
  39. if row[2] is 3:
  40. three.append(row[2])
  41.  
  42. #Calculate averages of buckets
  43. sum1 = 0
  44. for num in one:
  45. sum1+=num
  46. x_beoordeling.append(1)
  47. y_SumCount.append(sum1/len(one))
  48.  
  49. sum2 = 0
  50. for num in two:
  51. sum2+=num
  52. x_beoordeling.append(2)
  53. y_SumCount.append(sum2 / len(two))
  54.  
  55. sum3 = 0
  56. for num in three:
  57. sum3+=num
  58. x_beoordeling.append(3)
  59. y_SumCount.append(sum3 / len(three))
  60. #plt.plot(x_beoordeling,y_SumCount,"o")
  61. #plt.show()
  62.  
  63. plotRoomTotal(dbGetConnection(),"'226'")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement