Advertisement
techno-

37 EJ

Mar 14th, 2023
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 16.00 KB | None | 0 0
  1. /*1. Obter os datos completos dos alumnos que nunca escribiron no foro.*/
  2. SELECT *
  3. FROM alumno a
  4. WHERE email NOT IN (SELECT email FROM MEN_FORO WHERE email IS NOT NULL)
  5.  
  6. /*2. Obtén o profesor (nome) que máis mensaxes escribiu.*/
  7. SELECT nome
  8. FROM profesor p JOIN men_foro mf ON p.nss = mf.nss
  9. GROUP BY nome, p.nss
  10. HAVING COUNT(*) >= ALL (SELECT COUNT(*) FROM men_foro WHERE nss IS NOT NULL GROUP BY nss)
  11.  
  12. /*3. Para cada profesor (nome) mostra o nome do curso, de entre todos os que está
  13. capacitado para impartir, que dura máis horas*/
  14. SELECT p.nome, c.nome
  15. FROM profesor p JOIN capacitado ca ON p.nss = ca.nss JOIN curso c ON ca.cod_c = c.cod_c
  16. WHERE horas >= ALL (SELECT horas FROM curso c2 JOIN capacitado ca2 ON c2.COD_C =ca2.COD_C WHERE ca2.nss= ca.nss)
  17.  
  18. /*4. Indica cantos estudantes se rexistraron en cada edición de cada curso. Mostra o código
  19. e nome do curso, o número e ano da edición, e o número de estudantes (0, se non hai
  20. ningún).*/
  21. SELECT c.cod_c, c.nome, e.numero, TO_CHAR (e.data_comezo,'yyyy'), COUNT(r.email)
  22. FROM curso c JOIN edicion e ON c.COD_C = e.COD_C LEFT JOIN rexistrase r ON e.cod_c = r.cod_c AND e.numero = r.numero
  23. GROUP BY c.cod_c, c.nome, e.numero, e.data_comezo
  24.  
  25. /*5. Indica, para cada curso, aquelas edicións caras (con prezo superior a 100 euros).
  26. Mostra o código e nome do curso, e a data de inicio da edición. Se un curso non ten
  27. edicións caras, debes mostralo igualmente, cos datos da edición en branco*/
  28. SELECT c.cod_c, c.nome, e.prezo
  29. FROM curso c LEFT JOIN edicion e ON c.COD_C = e.COD_C
  30. AND e.PREZO > 100
  31.  
  32. /*6. Indica, para cada curso, a edición que tivo máis estudantes rexistrados. Mostra o
  33. código e nome do curso, e o número da edición. (Só cursos con estudantes
  34. rexistrados).*/
  35. SELECT c.cod_c, c.nome, e.numero
  36. FROM curso c JOIN edicion e ON c.COD_C = e.COD_C JOIN rexistrase r ON e.COD_C = r.cod_c AND e.NUMERO = r.numero
  37. GROUP BY c.cod_c, c.nome, e.numero
  38. HAVING COUNT(*) >= ALL (SELECT COUNT(*) FROM rexistrase WHERE cod_c = c.cod_c GROUP BY numero)
  39.  
  40. /*7. Mostra o código e nome de cada curso impartido, e o nome do método de pagamento
  41. máis utilizado para rexistrarse no dito curso. (Só cursos con estudantes rexistrados).*/
  42. SELECT c.cod_c, c.nome, r.metpago
  43. FROM curso c JOIN edicion e ON c.COD_C = e.cod_c JOIN REXISTRASE r ON e.cod_c=r.cod_c AND e.NUMERO = r.numero
  44. GROUP BY c.cod_c, c.nome, r.metpago
  45. HAVING COUNT(*) >= ALL (SELECT COUNT(*) FROM rexistrase WHERE cod_c = c.cod_c GROUP BY metpago)
  46.  
  47. /*8. Mostrar para cada curso, o seu nome e a edición/s con maior prezo*/
  48. SELECT c.nome, e.prezo, e.numero
  49. FROM curso c JOIN edicion e ON c.COD_C = e.cod_c
  50. WHERE e.prezo >= ALL (SELECT prezo FROM edicion WHERE cod_c = c.COD_C)
  51.  
  52. /*9. Mostrar o tema/s (o seu identificador e asunto) con menor número de mensaxes sen
  53. resposta.*/
  54. SELECT t.id_tema, t.asunto, COUNT(*) men_sin_resp
  55. FROM tema t JOIN pertenece p ON t.ID_TEMA = p.ID_tema
  56. JOIN men_foro m ON p.ID_MEN = m.ID_MEN
  57. WHERE m.id_men NOT IN (SELECT resposta_de FROM men_foro WHERE resposta_de IS NOT NULL)
  58. GROUP BY t.id_tema, t.asunto
  59. HAVING COUNT(*) <= ALL (SELECT COUNT(*) FROM pertenece p1 JOIN men_foro m1 ON p1.ID_MEN = m1.ID_MEN
  60. WHERE m1.ID_MEN NOT IN (SELECT resposta_de FROM MEN_FORO WHERE resposta_de IS NOT NULL)
  61. GROUP BY p1.ID_TEMA )
  62.  
  63. /*10. Nome de curso e edición que teña o menor número de alumnos rexistrados.*/
  64. SELECT c.nome, e.numero, COUNT(r.EMAIL)
  65. FROM curso c JOIN edicion e ON c.COD_C = e.COD_C LEFT JOIN REXISTRASE r ON e.COD_C = r.COD_C AND e.numero = r.numero
  66. GROUP BY c.nome, e.COD_C, e.NUMERO
  67. HAVING COUNT(r.email) <= ALL(SELECT COUNT(r2.email)
  68. FROM curso c2
  69. JOIN edicion e2 ON e2.cod_c = c2.cod_c
  70. LEFT JOIN rexistrase r2 ON r2.cod_c = e2.cod_c AND
  71. r2.numero = e2.numero
  72. GROUP BY e2.cod_c, e2.numero, c2.nome);
  73.  
  74. /*11. Nomes dos alumnos que escribiron en temas de cursos nos que xamais estiveron rexistrados.*/
  75. SELECT DISTINCT nome
  76. FROM alumno a JOIN men_foro m ON a.EMAIL = m.EMAIL
  77. JOIN pertenece p ON m.ID_MEN = p.ID_MEN JOIN tema t ON p.ID_TEMA = t.ID_TEMA
  78. WHERE t.cod_c NOT IN (SELECT cod_c FROM rexistrase WHERE email = a.email)
  79.  
  80. /*12. Para cada tema mostrar os profesores que máis mensaxes escribiron relacionados con el.*/
  81. SELECT t.id_tema, t.asunto, p.nss, p.nome
  82. FROM tema t JOIN pertenece pt ON t.ID_TEMA = pt.id_tema
  83. JOIN men_foro m ON pt.ID_MEN = m.ID_MEN
  84. JOIN profesor p ON m.nss = p.nss
  85. GROUP BY t.id_tema, t.asunto, p.nss, p.nome
  86. HAVING COUNT(*)>= ALL (SELECT COUNT(*)
  87. FROM men_foro m1 JOIN pertenece pe1
  88.  ON m1.id_men = pe1.id_men
  89. WHERE m1.nss IS NOT NULL AND
  90. pe1.id_tema=t.id_tema
  91.  GROUP BY m1.nss)
  92.  
  93.  /*13. Numero medio de mensaxes ao día.*/
  94.  SELECT avg(men_dia)
  95.  FROM (SELECT COUNT(*) men_dia FROM men_foro GROUP BY DATA)
  96.  
  97.  /*14. Queremos saber cantas edicións existen en promedio para un curso*/
  98.  SELECT avg(ed_medias)
  99.  FROM (SELECT COUNT(*) ed_medias FROM edicion GROUP BY cod_c)
  100.  
  101. /*15. Por cada día con mensaxes, indica cantos tiveron respostas no mesmo día. Se hai
  102. mensaxes, pero ningún foi respondido no día, indícao cun cero*/
  103.  SELECT COUNT(m2.ID_MEN), m1.DATA
  104.  FROM men_foro m1 LEFT JOIN men_foro m2 ON m2.ID_MEN = m1.RESPOSTA_DE AND m1.DATA=m2.DATA
  105.  GROUP BY m1.DATA
  106.  
  107.  /*16. Considerando os días onde houbo mensaxes, indica o número medio de mensaxes con
  108. resposta no mesmo día.*/
  109.  SELECT avg(men_resp)
  110.  FROM (SELECT COUNT(m2.id_men) men_resp
  111.  FROM men_foro m1 LEFT JOIN men_foro m2 ON
  112.  m1.resposta_de = m2.ID_MEN AND m1.DATA = m2.DATA
  113.  GROUP BY m1.DATA)
  114.  
  115.  /*17. Queremos saber, para cada estudante, cantos temas diferentes abordou en todas as
  116. súas mensaxes. Mostra o email e nome de cada estudante, o número de temas
  117. tratados (0, se ningún), e o número total de mensaxes publicadas polo/a estudante (0,
  118. se ningunha).*/
  119.  SELECT a.email, nome, COUNT(DISTINCT p.id_tema), COUNT(m.ID_MEN)
  120.  FROM alumno a LEFT JOIN men_foro m ON a.EMAIL = m.EMAIL
  121.  LEFT JOIN pertenece p ON m.ID_MEN = p.ID_MEN
  122.  GROUP BY a.email, nome
  123.  
  124.  /*18. Queremos saber, para cada edición de cada curso, cantos temas diferentes foron
  125. abordados, e cantas mensaxes en total foron publicadas. Mostra o código e nome do
  126. curso, o número da edición, o número de temas tratados (0, se ningún), e o número
  127. total de mensaxes publicadas (0, se ningunha).*/
  128.  SELECT c.cod_c, c.nome, e.numero, COUNT(DISTINCT t.id_tema), COUNT(m.id_men)
  129.  FROM curso c JOIN edicion e ON c.cod_c = e.cod_c LEFT JOIN tema t ON e.COD_C = t.COD_C AND e.NUMERO = t.NUMERO
  130.  LEFT JOIN pertenece p ON t.ID_TEMA = p.ID_tema LEFT JOIN men_foro m ON p.ID_MEN = m.ID_MEN
  131.  GROUP BY c.cod_c, c.nome, e.numero
  132.  
  133. /*19. Mostrar, para cada curso que sexa prerrequisito de algún outro, o seu nome e cántos
  134. cursos de entre os que o requiren, teñen unha duración en horas maior que el. Se non
  135. hai ningún, mostrarase un 0.*/
  136.  SELECT c.cod_c, c.nome, COUNT(c2.COD_C)
  137.  FROM curso c RIGHT JOIN curso c2 ON c.COD_C = c2.REQUISITO
  138.  AND c2.horas>c.horas
  139.  WHERE c.COD_C IN (SELECT requisito FROM curso)
  140.  GROUP BY c.cod_c, c.nome
  141.  
  142.  /*20. Para cada tema, amosa os alumnos (nome) que non escribiron mensaxes sobre el.*/
  143.  SELECT t.id_tema, t.asunto, a.nome
  144.  FROM alumno a CROSS JOIN tema t
  145.  WHERE (a.email, t.id_tema) NOT IN (SELECT email, id_tema FROM men_foro m JOIN pertenece p ON m.ID_MEN= p.ID_MEN
  146.  WHERE p.ID_TEMA= t.id_tema AND nss IS NULL)
  147.  
  148. /*21. Para cada tema, amosa os alumnos e profesores que non escribiron mensaxes sobre el*/
  149.  SELECT t.id_tema, t.asunto, a.nome
  150.  FROM alumno a CROSS JOIN tema t
  151.  WHERE (a.email, t.id_tema) NOT IN (SELECT email, id_tema FROM men_foro m JOIN pertenece p ON m.ID_MEN= p.ID_MEN
  152.  WHERE p.ID_TEMA= t.id_tema AND nss IS NULL)
  153.  UNION
  154.   SELECT t.id_tema, t.asunto, p.nome
  155.  FROM profesor p CROSS JOIN tema t
  156.  WHERE (p.nss, t.id_tema) NOT IN (SELECT nss, id_tema FROM men_foro m JOIN pertenece p ON m.ID_MEN= p.ID_MEN
  157.  WHERE p.ID_TEMA= t.id_tema AND email IS NULL)
  158.  
  159.  /*22. Queremos coñecer cales son os cursos TOP da nosa academia. É dicir, cursos que non
  160. tiveron nunca edicións sen alumnos (obviamente, se un curso non tivo edicións non
  161. será considerado) e nas que sempre houbera matriculado máis de 2 alumnos. */
  162. SELECT DISTINCT c.cod_c
  163. FROM curso c JOIN edicion e ON c.COD_C = e.COD_C
  164. WHERE c.COD_C NOT IN (SELECT COD_C
  165. FROM edicion
  166. WHERE (cod_c, numero) NOT IN
  167. (SELECT DISTINCT cod_c, numero
  168. FROM rexistrase))
  169. AND NOT EXISTS (SELECT r.numero
  170. FROM rexistrase r
  171. WHERE r.cod_c = c.cod_c
  172. GROUP BY r.numero
  173. HAVING COUNT(*)<=2)
  174.  
  175. /*23. Mostra aqueles docentes (nss, nome) capacitados para impartir TODOS os cursos
  176. rexistrados na BD.*/
  177. SELECT DISTINCT nss, nome FROM profesor
  178. WHERE nss NOT IN
  179. (SELECT DISTINCT pnc.nss FROM
  180.  (
  181.  (SELECT p.nss, c.cod_c FROM profesor p CROSS JOIN curso c)
  182.  MINUS
  183.  (SELECT c.nss, c.COD_C FROM capacitado c)
  184.  ) pnc
  185. )
  186.  
  187. /*24. Mostra aqueles docentes (nss, nome) que NON ESTÁN capacitados para impartir
  188. TODOS os cursos rexistrados na BD.*/
  189. SELECT DISTINCT nss, nome FROM profesor
  190. WHERE nss IN
  191. (SELECT DISTINCT pnc.nss FROM
  192.  (
  193.  (SELECT p.nss, c.cod_c FROM profesor p CROSS JOIN curso c)
  194.  MINUS
  195.  (SELECT c.nss, c.COD_C FROM capacitado c)
  196.  ) pnc
  197. )
  198.  
  199. /*25. Indica, para cada posible combinación curso/profesor, se o docente está capacitado
  200. para impartir o curso. Mostra o código e nome do curso, o nss e nome do docente, e
  201. se está capacitado (‘Si’ ou ‘Non’)*/
  202.  
  203. (SELECT c.cod_c, c.nome, p.nss, p.nome, 'Si' AS capacitado
  204. FROM curso c JOIN capacitado cp ON c.COD_C =cp.COD_C
  205. JOIN profesor p ON cp.nss=p.nss)
  206.  
  207. UNION
  208.  
  209. (SELECT c.cod_c, c.nome, p.nss, p.nome, 'No' AS capacitado
  210. FROM curso c CROSS JOIN profesor p)
  211. MINUS
  212.  
  213. (SELECT c.cod_c, c.nome, p.nss, p.nome, 'No'
  214. FROM curso c JOIN capacitado cp ON c.COD_C =cp.COD_C
  215. JOIN profesor p ON cp.nss=p.nss)
  216.  
  217. /*26. Indica, para cada curso, cantas edicións caras tivo (con prezo superior a 100 euros).
  218. Mostra o código e nome do curso, o número de edicións caras que tivo (0, se
  219. ningunha), e o total de estudantes matriculados nelas (0, se ningún).*/
  220. SELECT c.cod_c, c.nome, COUNT(DISTINCT e.numero), COUNT(r.email)
  221. FROM curso c LEFT JOIN edicion e ON c.COD_C = e.COD_C AND e.PREZO >100
  222. LEFT JOIN rexistrase r ON e.COD_C = r.COD_C AND e.NUMERO = r.NUMERO
  223. GROUP BY c.cod_c, c.nome
  224.  
  225. /*27. Para cada edición mostrar o número de temas e alumnos rexistrados. No caso de que
  226. non teñan temas ou alumnos ten que aparecer un 0. Debe aparecer o nome do curso.*/
  227. SELECT c.nome, COUNT(DISTINCT t.id_tema), COUNT(DISTINCT r.email)
  228. FROM curso c JOIN edicion e ON c.COD_C = e.COD_C LEFT JOIN tema t ON e.cod_c = t.COD_C AND e.NUMERO = t.NUMERO
  229. LEFT JOIN rexistrase r ON e.COD_C = r.COD_C AND e.NUMERO = r.NUMERO
  230. GROUP BY c.COD_C ,c.NOME , e.numero
  231.  
  232. /*28. Nomes de todos os profesores e número de mensaxes que escribiron en temas pertencentes a
  233. cursos que eles imparten.*/
  234. SELECT p.nome, COUNT(DISTINCT m.ID_MEN)
  235. FROM profesor p LEFT JOIN men_foro m ON p.NSS = m.nss
  236. LEFT JOIN edicion e ON e.nss = p.nss
  237. LEFT JOIN tema t ON e.COD_C = t.COD_C AND e.numero = t.numero
  238. GROUP BY p.nome, p.NSS
  239.  
  240. /*29. Para cada edición de cada curso, mostrar o número de mensaxes publicados dentro da
  241. duración da edición (data comezo e data fin, inclusive). Mostrar 0 cando non haxa
  242. mensaxes.*/
  243. SELECT e.cod_c, e.numero, COUNT(DISTINCT m.id_men)
  244. FROM edicion e LEFT JOIN tema t ON e.COD_C = t.COD_C AND e.NUMERO = t.NUMERO
  245. LEFT JOIN pertenece p ON t.ID_TEMA = p.ID_TEMA LEFT JOIN men_foro m ON p.ID_MEN = m.ID_MEN
  246. AND m.DATA >= e.DATA_COMEZO AND m.DATA <= e.DATA_FIN
  247. GROUP BY e.COD_C , e.numero
  248.  
  249. /*30. Para cada edición de un curso, mostrar o profesor que a imparte (nome), e cal é a súa
  250. diferenza de antigüidade con respecto ao profesor con maior experiencia que teña
  251. impartido ese mesmo curso en calquera outra edición.*/
  252. SELECT p.nome, to_char(p.data_alta, 'YYYY')- maximo
  253. FROM profesor p JOIN edicion e ON p.NSS = e.nss JOIN
  254. (SELECT e1.cod_c, to_char(MIN(p1.DATA_ALTA), 'YYYY') maximo
  255. FROM profesor p1 JOIN edicion e1
  256. ON p1.NSS = e1.nss
  257. GROUP BY e1.cod_c) f
  258. ON e.COD_C = f.cod_c
  259.  
  260. /*31. Mostra os cursos nos que un alumno se matriculou algunha vez (independentemente
  261. da edición á que fose o de se foi a varias edicións dun mesmo curso) con un texto ‘SI’ e
  262. aqueles nos que nunca se matriculou co texto ‘NON’. Ter en conta todos los alumnos
  263. (incluso se un alumno aínda non se matriculou en ningún curso). Ordenar o resultado,
  264. primeiro, por nome do alumno, e segundo, por nome de curso.*/
  265. SELECT DISTINCT a.nome nombre_alumno, c.nome nombre_curso, 'Si' AS matriculado
  266. FROM alumno a JOIN rexistrase r ON a.EMAIL = r.EMAIL
  267. JOIN curso c ON r.cod_c = c.COD_C
  268.  
  269. UNION
  270.  
  271. SELECT a.nome, c.nome, 'No' AS matriculado
  272. FROM alumno a CROSS JOIN curso c
  273. MINUS
  274. SELECT a.nome, c.nome , 'No'
  275. FROM alumno a JOIN rexistrase r ON a.EMAIL = r.EMAIL
  276. LEFT JOIN curso c ON r.cod_c = c.COD_C NATURAL JOIN alumno
  277.  
  278. ORDER BY nombre_alumno, nombre_curso;
  279.  
  280.  
  281. /*32. Para cada edicion de curso cantos mensaxes de alumnos foron respondidos polos
  282. profesores. Mostrar nome do curso e número de edición.*/
  283. SELECT c.nome, e.numero, COUNT(DISTINCT m.ID_MEN)
  284. FROM curso c JOIN edicion e ON c.COD_C = e.COD_C
  285. JOIN tema t ON e.COD_C = t.COD_C AND e.NUMERO = t.NUMERO
  286. JOIN pertenece p ON t.ID_TEMA = p.ID_TEMA
  287. JOIN men_foro m ON p.ID_MEN = m.id_men AND m.nss IS NULL
  288. JOIN men_foro m2 ON m.ID_MEN = m2.RESPOSTA_DE AND m2.nss IS NOT NULL
  289. GROUP BY c.nome, c.COD_C , e.numero
  290.  
  291.  /*33. Para cada tema cantos mensaxes de alumnos foron respondidos polos profesores e
  292. cantos mensaxes de profesores foron respondidos polos alumnos. Mostrar o asunto
  293. do tema.*/
  294. SELECT t.asunto, c_alum, c_prof
  295. FROM tema t JOIN (SELECT id_tema, COUNT(*) c_alum FROM men_foro m JOIN men_foro m2 ON m2.RESPOSTA_DE = m.id_men
  296. JOIN pertenece p ON p.ID_MEN = m.ID_MEN
  297. WHERE m.nss IS NULL AND m2.nss IS NOT NULL GROUP BY id_tema) m_alumno_resp_profesor
  298. ON m_alumno_resp_profesor.id_tema = t.id_tema
  299. JOIN (SELECT id_tema, COUNT(*) c_prof
  300. FROM men_foro m JOIN MEN_FORO m2 ON m2.RESPOSTA_DE = m.ID_MEN
  301. JOIN PERTENECE p ON p.ID_MEN = m.ID_MEN WHERE m.nss IS NOT NULL AND m2.nss IS NULL
  302. GROUP BY id_tema) m_prof_resp_alumno
  303. ON m_prof_resp_alumno.id_tema = t.id_tema
  304.  
  305. /*34. Amosa os alumnos (email) que estiveron rexistrados en polo menos tres edicións de
  306. cursos que se celebraban solapadas no tempo (polo menos un día).*/
  307.  
  308. SELECT r.email, e.cod_c, e.numero, e.data_comezo, e.data_fin
  309.  FROM rexistrase r JOIN edicion e ON r.cod_c=e.cod_c
  310.  AND r.numero=e.numero
  311.  WHERE 3 >=(SELECT COUNT(*) cuenta
  312.  FROM rexistrase r1 JOIN edicion e1 ON r1.cod_c=e1.cod_c
  313.  AND r1.numero=e1.numero
  314.  WHERE r1.email=r.email
  315.  AND ((e1.data_comezo <= e.data_fin)
  316.  AND (e1.data_fin>=e.data_comezo)));
  317.  
  318. /*35. Para cada alumno indicar o importe medio das súas matrículas en cursos, e canto difire
  319. este con respecto ao gasto medio por matrícula da súa organización.*/
  320.  
  321. SELECT a.email, a.organizacion, abs(media_a- media_b)
  322. FROM (SELECT r.email, organizacion, avg(prezo) media_a
  323. FROM rexistrase r JOIN edicion e ON r.cod_c = e.COD_C AND r.numero = e.numero
  324. JOIN alumno a ON a.email = r.email
  325. GROUP BY r.email, organizacion) a
  326. JOIN
  327. (SELECT organizacion, avg(prezo) media_b
  328. FROM rexistrase r JOIN edicion e ON r.cod_c = e.COD_C AND r.numero = e.numero
  329. JOIN alumno a ON a.email = r.email
  330. GROUP BY organizacion) b
  331. ON a.ORGANIZACION = b.organizacion
  332.  
  333. /*36. Cal é a diferenza do importe medio de todas as matrículas pagadas por transferencia e
  334. as pagadas por tarxeta*/
  335. SELECT transferencia-tarxeta
  336. FROM (SELECT avg(prezo) transferencia FROM edicion e JOIN rexistrase r ON e.COD_C = r.COD_C AND e.NUMERO = r.NUMERO
  337. WHERE metpago = 'transferencia')  
  338. CROSS JOIN (SELECT avg(prezo) tarxeta FROM edicion e JOIN rexistrase r ON e.COD_C = r.COD_C AND e.NUMERO = r.NUMERO
  339. WHERE metpago = 'tarxeta' )
  340.  
  341. /*37. Para cada alumno amosa o importe medio das súas matrículas e a diferenza co
  342. importe medio de todas as matrículas de todos alumnos.*/
  343. SELECT r.email, avg(e.prezo)-
  344.  
  345. (SELECT avg(e1.prezo)
  346. FROM rexistrase r1 JOIN edicion e1 ON r1.COD_C = e1.COD_C AND r1.NUMERO = e1.NUMERO)
  347.  
  348. FROM rexistrase r JOIN edicion e ON r.COD_C = e.COD_C AND r.NUMERO = e.NUMERO
  349. GROUP BY r.email
  350.  
  351.  
  352.  
  353.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement