Wacky_rubia

тбд

Oct 13th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.75 KB | None | 0 0
  1. create database [Anastasia.Svalova]
  2. go
  3.  
  4. -----------------------------------
  5.  
  6. CREATE SCHEMA lab1
  7. GO
  8.  
  9. -----------------------------------
  10.  
  11. create table [measure_type.Svalova.ut_students]
  12. (
  13. name varchar(30) NOT NULL,
  14. id int NOT NULL primary key IDENTITY(1,1)
  15. )
  16. go
  17.  
  18. create table [gstate.Svalova.ut_students]
  19. (
  20. name varchar(30) NOT NULL,
  21. id int NOT NULL primary key IDENTITY(1,1)
  22. )
  23. go
  24.  
  25. create table [measures_on_st.Svalova.ut_students]
  26. (
  27. state_id int NOt NULL foreign key references [gstate.Svalova.ut_students](id),
  28. measure_type_id int NOt NULL foreign key references [measure_type.Svalova.ut_students](id),
  29. value int NOt NULL,
  30. data_of_measure datetime NOt NULL
  31. )
  32. go
  33.  
  34. -----------------------------------------
  35.  
  36. insert into [measure_type.Svalova.ut_students] (name)
  37. values ('влажность')
  38. go
  39.  
  40. insert into [measure_type.Svalova.ut_students] (name)
  41. values ('давление')
  42. go
  43.  
  44.  
  45. insert into [measure_type.Svalova.ut_students] (name)
  46. values ('температура')
  47. go
  48.  
  49. ----------------------------------------
  50.  
  51. insert into [gstate.Svalova.ut_students] (name)
  52. values ('Москва')
  53. go
  54. insert into [gstate.Svalova.ut_students] (name)
  55. values ('Псков')
  56. go
  57. insert into [gstate.Svalova.ut_students] (name)
  58. values ('Кировград')
  59. go
  60. insert into [gstate.Svalova.ut_students] (name)
  61. values ('Тюмень')
  62. go
  63.  
  64. ----------------------------------------
  65.  
  66. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  67. values (1, 1, 13, '19950330')
  68. go
  69.  
  70. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  71. values (1, 2, 543, '19950330')
  72. go
  73.  
  74. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  75. values (1, 3, 63, '19950330')
  76. go
  77.  
  78. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  79. values (2, 1, 45, '19950330')
  80. go
  81.  
  82. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  83. values (2, 2, 6768, '19950330')
  84. go
  85.  
  86. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  87. values (2, 3, 234, '19950330')
  88. go
  89.  
  90. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  91. values (3, 1, 45, '19950330')
  92. go
  93.  
  94. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  95. values (3, 2, 57, '19950330')
  96. go
  97.  
  98. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  99. values (3, 3, 7686, '19950330')
  100. go
  101.  
  102. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  103. values (4, 3, 77, '19950330')
  104. go
  105.  
  106. insert into [measures_on_st.Svalova.ut_students] (state_id, measure_type_id, value, data_of_measure)
  107. values (4, 1, 57, '19950330')
  108. go
  109.  
  110. --------------------------------------
  111.  
  112. alter table [gstate.Svalova.ut_students]
  113. add address varchar(70) default 'Россия, г. Екатеринбург' not null
  114.  
  115. --------------------------------------
  116.  
  117. create table [measures_units.Svalova.ut_students]
  118. (
  119. name varchar(30) NOT NULL,
  120. id int NOT NULL primary key IDENTITY(1,1)
  121. )
  122. go
  123.  
  124. --------------------------------------
  125.  
  126. insert into [measures_units.Svalova.ut_students] (name)
  127. values ('%')
  128. go
  129.  
  130. insert into [measures_units.Svalova.ut_students] (name)
  131. values ('атм')
  132. go
  133.  
  134. insert into [measures_units.Svalova.ut_students] (name)
  135. values ('градусы_Цельсия')
  136. go
  137.  
  138. --------------------------------------
  139.  
  140. alter table [measure_type.Svalova.ut_students]
  141. add [measures_unit] int foreign key references [measures_units.Svalova.ut_students](id)
  142. go
  143.  
  144. update [measure_type.Svalova.ut_students]
  145. set [measures_unit] = 1
  146. where name = 'влажность'
  147. go
  148.  
  149. update [measure_type.Svalova.ut_students]
  150. set [measures_unit] = 2
  151. where name = 'давление'
  152. go
  153.  
  154. update [measure_type.Svalova.ut_students]
  155. set [measures_unit] = 3
  156. where name = 'температура'
  157. go
  158.  
  159. --------------------------------------
  160.  
  161. select distinct FORMAT(CONVERT(date, data_of_measure), 'dd.MM.yy(yyyy)') as 'дата' from [measures_on_st.Svalova.ut_students]
  162. go
  163.  
  164. select (select name from [measure_type.Svalova.ut_students] where id = [measure_type_id]) as 'тип',
  165. max(value) as 'max', min(value) as 'min' FROM [measures_on_st.Svalova.ut_students]
  166. group by measure_type_id
  167.  
  168. select value from [measures_on_st.Svalova.ut_students]
  169. where measure_type_id in
  170. (
  171. select id from [measure_type.Svalova.ut_students]
  172. where measures_unit in
  173. (
  174. select id from [measures_units.Svalova.ut_students]
  175. where name like 'градусы%'
  176. )
  177. )
  178.  
  179. --------------------------------------
  180.  
  181. SELECT x.value as 'минимальное значение', FORMAT(CONVERT(date, data_of_measure), 'dd.MM.yy(yyyy)') as 'дата',
  182. name as 'тип'
  183. FROM [measures_on_st.Svalova.ut_students] as x join [measure_type.Svalova.ut_students]
  184. on x.measure_type_id = [measure_type.Svalova.ut_students].id
  185. WHERE EXISTS
  186. (SELECT * FROM [measures_on_st.Svalova.ut_students] as y
  187. WHERE x.measure_type_id = y.measure_type_id
  188. HAVING x.value = MIN(y.value))
  189.  
  190. --select value as 'минимальное значение', FORMAT(CONVERT(date, data_of_measure), 'dd.MM.yy(yyyy)') as 'дата' , name as 'тип'
  191. --from [measures_on_st.Svalova.ut_students] join [measure_type.Svalova.ut_students] on measure_type_id=id
  192. --where value in
  193. --(
  194. -- select min(value)
  195. -- from [measures_on_st.Svalova.ut_students]
  196. -- group by measure_type_id
  197. --)
  198. --проблема что мин не связан с валью
  199. --------------------------------------
  200.  
  201. select avg(value) as 'среднее значение', FORMAT(CONVERT(date, data_of_measure), 'dd.MM.yy(yyyy)') as 'дата', [measure_type.Svalova.ut_students].name as 'тип',
  202. [gstate.Svalova.ut_students].name as 'имя', [measures_units.Svalova.ut_students].name as 'единицы'
  203. from [measures_on_st.Svalova.ut_students] join [measure_type.Svalova.ut_students] on measure_type_id=id
  204. join [gstate.Svalova.ut_students] on [gstate.Svalova.ut_students].id = [measures_on_st.Svalova.ut_students].state_id
  205. join [measures_units.Svalova.ut_students] on [measures_units.Svalova.ut_students].id = [measure_type.Svalova.ut_students].measures_unit
  206. group by [gstate.Svalova.ut_students].name, data_of_measure, measure_type_id, [measure_type.Svalova.ut_students].name, [measures_units.Svalova.ut_students].name
  207.  
  208. --------------------------------------
  209.  
  210. select * from [measures_on_st.Svalova.ut_students];
  211. go
  212. select * from [gstate.Svalova.ut_students];
  213. go
  214. select * from [measure_type.Svalova.ut_students];
  215. go
  216. select * from [measures_units.Svalova.ut_students];
  217. go
Advertisement
Add Comment
Please, Sign In to add comment