Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.26 KB | None | 0 0
  1. CREATE TABLE temp_region (
  2. region_padre VARCHAR2(70),
  3. region_hija VARCHAR2(70)
  4. );
  5.  
  6. select count(*) from temp_region;
  7.  
  8. CREATE TABLE temp_respuestas (
  9. pais VARCHAR2(70),
  10. respuesta VARCHAR2(5),
  11. pregunta VARCHAR2(300)
  12.  
  13. );
  14.  
  15.  
  16.  
  17. select *from temp_respuestas;
  18.  
  19. CREATE TABLE temp_encuestas(
  20. encuesta VARCHAR2(70),
  21. pregunta VARCHAR2(300),
  22. letra VARCHAR2(5),
  23. respuesta VARCHAR2(70),
  24. correcta VARCHAR2(5)
  25.  
  26. );
  27.  
  28.  
  29. select *from temp_encuestas;
  30.  
  31. CREATE TABLE temp_datos(
  32. invento VARCHAR2(70),
  33. inventor VARCHAR2(70),
  34. profesional VARCHAR2(70),
  35. jefe VARCHAR2(70),
  36. fecha VARCHAR2(30),
  37. salario integer,
  38. comision integer,
  39. area VARCHAR2(70),
  40. ranking integer,
  41. ano integer,
  42. pais VARCHAR2(70),
  43. paisInventor VARCHAR2(70),
  44. region VARCHAR2(100),
  45. capital VARCHAR2(70),
  46. poblacion integer,
  47. areakm integer,
  48. frontera VARCHAR2(70)
  49.  
  50. );
  51.  
  52.  
  53. CREATE TABLE area (
  54. id INTEGER generated always as identity (start with 1 increment by 1),
  55. nombre VARCHAR2(70),
  56. ranking INTEGER,
  57. id_jefe INTEGER NOT NULL
  58. );
  59.  
  60.  
  61. ALTER TABLE area ADD CONSTRAINT area_pk PRIMARY KEY ( id );
  62.  
  63.  
  64.  
  65. CREATE TABLE asignacion (
  66. id INTEGER generated always as identity (start with 1 increment by 1),
  67. id_profesional INTEGER NOT NULL,
  68. id_area INTEGER NOT NULL
  69. );
  70.  
  71. ALTER TABLE asignacion ADD CONSTRAINT asignacion_pk PRIMARY KEY ( id );
  72.  
  73. CREATE TABLE contestacion (
  74. id INTEGER generated always as identity (start with 1 increment by 1),
  75. id_pais INTEGER NOT NULL,
  76. id_respuesta INTEGER NOT NULL
  77. );
  78.  
  79. ALTER TABLE contestacion ADD CONSTRAINT contestacion_pk PRIMARY KEY ( id );
  80.  
  81. CREATE TABLE encuesta (
  82. id INTEGER generated always as identity (start with 1 increment by 1),
  83. nombre VARCHAR2(70) NOT NULL
  84. );
  85.  
  86. ALTER TABLE encuesta ADD CONSTRAINT encuesta_pk PRIMARY KEY ( id );
  87.  
  88. CREATE TABLE frontera (
  89. id INTEGER generated always as identity (start with 1 increment by 1),
  90. id_pais INTEGER NOT NULL,
  91. id_pais2 INTEGER NOT NULL
  92. );
  93.  
  94. ALTER TABLE frontera ADD CONSTRAINT frontera_pk PRIMARY KEY ( id );
  95.  
  96. CREATE TABLE invension (
  97. id INTEGER generated always as identity (start with 1 increment by 1),
  98. id_invento INTEGER NOT NULL,
  99. id_inventor INTEGER NOT NULL
  100. );
  101.  
  102. ALTER TABLE invension ADD CONSTRAINT invension_pk PRIMARY KEY ( id );
  103.  
  104. CREATE TABLE invento (
  105. id INTEGER generated always as identity (start with 1 increment by 1),
  106. nombre VARCHAR2(70) NOT NULL,
  107. ano INTEGER NOT NULL,
  108. id_pais INTEGER NOT NULL,
  109. id_profesional INTEGER NOT NULL
  110. );
  111.  
  112. ALTER TABLE invento ADD CONSTRAINT invento_pk PRIMARY KEY ( id );
  113.  
  114. CREATE TABLE inventor (
  115. id INTEGER generated always as identity (start with 1 increment by 1),
  116. nombre VARCHAR2(70),
  117. id_pais INTEGER NOT NULL
  118. );
  119.  
  120. ALTER TABLE inventor ADD CONSTRAINT inventor_pk PRIMARY KEY ( id );
  121.  
  122. CREATE TABLE paiss (
  123. id INTEGER generated always as identity (start with 1 increment by 1),
  124. nombre VARCHAR2(70) NOT NULL,
  125. area INTEGER NOT NULL,
  126. poblacion INTEGER NOT NULL,
  127. capital VARCHAR2(70),
  128. id_region INTEGER NOT NULL
  129. );
  130.  
  131. ALTER TABLE paiss ADD CONSTRAINT pais_pk PRIMARY KEY ( id );
  132.  
  133. CREATE TABLE pregunta (
  134. id INTEGER generated always as identity (start with 1 increment by 1),
  135. pregunta VARCHAR2(70) NOT NULL,
  136. id_encuesta INTEGER NOT NULL
  137. );
  138.  
  139. ALTER TABLE pregunta ADD CONSTRAINT pregunta_pk PRIMARY KEY ( id );
  140.  
  141. CREATE TABLE profesional (
  142. id INTEGER generated always as identity (start with 1 increment by 1),
  143. nombre VARCHAR2(70) NOT NULL,
  144. fecha DATE,
  145. salario INTEGER,
  146. comision INTEGER
  147. );
  148.  
  149. alter table profesional modify fecha varchar2(50)
  150.  
  151. ALTER TABLE profesional ADD CONSTRAINT profesional_pk PRIMARY KEY ( id );
  152.  
  153. CREATE TABLE regionn (
  154. id INTEGER generated always as identity (start with 1 increment by 1),
  155. nombre VARCHAR2(70) NOT NULL,
  156. id_padre INTEGER
  157. );
  158.  
  159. ALTER TABLE regionn ADD CONSTRAINT region_pk PRIMARY KEY ( id );
  160.  
  161. CREATE TABLE respuesta (
  162. id INTEGER generated always as identity (start with 1 increment by 1),
  163. respuesta VARCHAR2(20) NOT NULL,
  164. letra VARCHAR2(2) NOT NULL,
  165. correcta VARCHAR2(5) NOT NULL,
  166. id_pregunta INTEGER NOT NULL
  167. );
  168.  
  169.  
  170.  
  171. ALTER TABLE respuesta ADD CONSTRAINT respuesta_pk PRIMARY KEY ( id );
  172.  
  173. ALTER TABLE area
  174. ADD CONSTRAINT area_profesional_fk FOREIGN KEY ( id_jefe )
  175. REFERENCES profesional ( id );
  176.  
  177. ALTER TABLE asignacion
  178. ADD CONSTRAINT asignacion_area_fk FOREIGN KEY ( id_area )
  179. REFERENCES area ( id );
  180.  
  181. ALTER TABLE asignacion
  182. ADD CONSTRAINT asignacion_profesional_fk FOREIGN KEY ( id_profesional )
  183. REFERENCES profesional ( id );
  184.  
  185. ALTER TABLE contestacion
  186. ADD CONSTRAINT contestacion_pais_fk FOREIGN KEY ( id_pais )
  187. REFERENCES paiss ( id );
  188.  
  189. ALTER TABLE contestacion
  190. ADD CONSTRAINT contestacion_respuesta_fk FOREIGN KEY ( id_respuesta )
  191. REFERENCES respuesta ( id );
  192.  
  193. ALTER TABLE frontera
  194. ADD CONSTRAINT frontera_pais_fk FOREIGN KEY ( id_pais )
  195. REFERENCES paiss ( id );
  196.  
  197. ALTER TABLE frontera
  198. ADD CONSTRAINT frontera_pais_fkv2 FOREIGN KEY ( id_pais2 )
  199. REFERENCES paiss ( id );
  200.  
  201. ALTER TABLE invension
  202. ADD CONSTRAINT invension_invento_fk FOREIGN KEY ( id_invento )
  203. REFERENCES invento ( id );
  204.  
  205. ALTER TABLE invension
  206. ADD CONSTRAINT invension_inventor_fk FOREIGN KEY ( id_inventor )
  207. REFERENCES inventor ( id );
  208.  
  209. ALTER TABLE invento
  210. ADD CONSTRAINT invento_pais_fk FOREIGN KEY ( id_pais )
  211. REFERENCES paiss ( id );
  212.  
  213. ALTER TABLE invento
  214. ADD CONSTRAINT invento_profesional_fk FOREIGN KEY ( id_profesional )
  215. REFERENCES profesional ( id );
  216.  
  217. ALTER TABLE inventor
  218. ADD CONSTRAINT inventor_pais_fk FOREIGN KEY ( id_pais )
  219. REFERENCES paiss ( id );
  220.  
  221. ALTER TABLE paiss
  222. ADD CONSTRAINT pais_region_fk FOREIGN KEY ( id_region )
  223. REFERENCES regionn ( id );
  224.  
  225. ALTER TABLE pregunta
  226. ADD CONSTRAINT pregunta_encuesta_fk FOREIGN KEY ( id_encuesta )
  227. REFERENCES encuesta ( id );
  228.  
  229. ALTER TABLE regionn
  230. ADD CONSTRAINT region_region_fk FOREIGN KEY ( id_padre )
  231. REFERENCES regionn ( id );
  232.  
  233. ALTER TABLE respuesta
  234. ADD CONSTRAINT respuesta_pregunta_fk FOREIGN KEY ( id_pregunta )
  235. REFERENCES pregunta ( id );
  236.  
  237. select * from regionn
  238. select * from temp_region
  239.  
  240. INSERT INTO REGIONN(nombre)
  241. SELECT DISTINCT region_hija as nombre
  242. FROM temp_region
  243. WHERE region_padre is null
  244.  
  245. INSERT INTO REGIONN(nombre,id_padre)
  246. SELECT DISTINCT region_hija as nombre,regionn.id as id_padre
  247. FROM temp_region INNER JOIN regionn
  248. ON temp_region.region_padre = regionn.nombre
  249.  
  250. select * from temp_encuestas
  251. select * from encuesta
  252. select * from pregunta
  253. select * from REGIONN
  254.  
  255.  
  256. INSERT INTO encuesta(nombre)
  257. SELECT DISTINCT encuesta as nombre
  258. FROM temp_encuestas
  259.  
  260. select * from encuesta
  261.  
  262. INSERT INTO pregunta(pregunta,id_encuesta)
  263. SELECT DISTINCT pregunta as nombre,encuesta.id as id_encuesta
  264. FROM temp_encuestas INNER JOIN encuesta
  265. ON temp_encuestas.encuesta = encuesta.nombre
  266.  
  267. select * from pregunta
  268.  
  269. INSERT INTO respuesta(respuesta,letra,correcta,id_pregunta)
  270. SELECT DISTINCT respuesta,letra,correcta,pregunta.id
  271. FROM temp_encuestas INNER JOIN pregunta
  272. ON temp_encuestas.pregunta = pregunta.pregunta
  273. order by pregunta.id
  274.  
  275. select * from temp_datos
  276. select * from paiss
  277.  
  278. insert into paiss(nombre,area,poblacion,capital,id_region) values('Belgica',30528,11409077,'Bruselas',13)
  279.  
  280.  
  281. INSERT INTO paiss(nombre,area,poblacion,capital,id_region)
  282. SELECT DISTINCT paisinventor,areakm,poblacion,capital,regionn.id
  283. FROM temp_datos INNER JOIN regionn
  284. ON temp_datos.region = regionn.nombre
  285.  
  286.  
  287. select * from temp_respuestas
  288. select * from contestacion
  289. select * from paiss
  290. order by nombre
  291. select d.respuesta,d.letra,c.pregunta, d.id_pregunta
  292. from respuesta d
  293. inner join pregunta c on c.id = d.id_pregunta
  294. select * from pregunta
  295.  
  296. select * from respuesta
  297.  
  298. create view aux3 as
  299. SELECT temp_respuestas.pais,temp_respuestas.respuesta,pregunta.id
  300. FROM temp_respuestas
  301. INNER JOIN pregunta
  302. ON temp_respuestas.pregunta = pregunta.pregunta
  303. order by pregunta.id
  304.  
  305. select * from aux3
  306. select * from pregunta
  307. select pais from aux3 d
  308. inner join paiss
  309. ON d.pais like concat(paiss.nombre,'%')
  310.  
  311.  
  312. select * from aux3
  313. where pais not in(
  314. select pais from aux3 d
  315. inner join paiss
  316. ON d.pais like concat(paiss.nombre,'%')
  317. )
  318.  
  319. INSERT INTO contestacion(id_pais,id_respuesta)
  320. SELECT paiss.id as id_pais,respuesta.id as id_respuesta
  321. FROM aux3 d
  322. INNER JOIN respuesta
  323. ON d.respuesta = respuesta.letra and d.id=respuesta.id_pregunta
  324. INNER JOIN paiss
  325. ON d.pais like concat(paiss.nombre,'%')
  326.  
  327. select * from aux3
  328. select *from contestacion
  329.  
  330.  
  331.  
  332. INSERT INTO profesional(nombre,fecha,salario,comision)
  333. SELECT DISTINCT profesional,fecha,salario,comision
  334. FROM temp_datos d
  335. where profesional is not null
  336.  
  337.  
  338. select *from profesional
  339. select *from temp_datos
  340. select *from invento order by nombre
  341.  
  342.  
  343. INSERT INTO invento(nombre,ano,id_pais,id_profesional)
  344. SELECT DISTINCT invento,ano,p.id,pr.id
  345. FROM temp_datos d
  346. INNER JOIN paiss p
  347. ON d.pais = p.nombre
  348. INNER JOIN profesional pr
  349. ON d.profesional = pr.nombre
  350. where invento is not null
  351. order by invento
  352.  
  353. INSERT INTO inventor(nombre,id_pais)
  354. SELECT DISTINCT inventor,p.id
  355. FROM temp_datos d
  356. INNER JOIN paiss p
  357. ON d.pais = p.nombre
  358. where inventor is not null
  359. order by inventor
  360.  
  361. INSERT INTO area(nombre,id_jefe)
  362. SELECT DISTINCT jefe,p.id
  363. FROM temp_datos d
  364. INNER JOIN profesional p
  365. ON d.profesional = p.nombre
  366. where jefe is not null
  367.  
  368. insert into area(nombre,ranking) values('Electrónica',8)
  369.  
  370. update area set ranking=6 where nombre='Biología'
  371. update area set ranking=7 where nombre='Matemática'
  372. update area set ranking=2 where nombre='Óptica'
  373. update area set ranking=6 where nombre='Mecánica'
  374. update area set ranking=4 where nombre='Química'
  375. update area set ranking=9 where nombre='Energía'
  376.  
  377. select * from area
  378.  
  379. INSERT INTO asignacion(id_profesional,id_area)
  380. SELECT DISTINCT p.id,a.id
  381. FROM temp_datos d
  382. INNER JOIN profesional p
  383. ON d.profesional = p.nombre
  384. INNER JOIN area a
  385. ON d.area = a.nombre
  386. where profesional is not null
  387.  
  388. select * from asignacion
  389.  
  390. INSERT INTO invension(id_invento,id_inventor)
  391. SELECT DISTINCT i.id,inn.id
  392. FROM temp_datos d
  393. INNER JOIN inventor inn
  394. ON d.inventor = inn.nombre
  395. INNER JOIN invento i
  396. ON d.invento = i.nombre
  397.  
  398. delete from invension where id_invento=5 and id_inventor=127
  399. delete from invension where id_invento=123 and id_inventor=101
  400.  
  401. select * from invension
  402.  
  403. select *from frontera
  404.  
  405. INSERT INTO frontera(id_pais,id_pais2)
  406. SELECT DISTINCT c.id,f.id
  407. FROM temp_datos d
  408. INNER JOIN paiss c
  409. ON d.paisinventor = c.nombre
  410. INNER JOIN paiss f
  411. ON d.frontera = f.nombre
  412. where d.frontera is not null
  413.  
  414. ////////////////////////////////////////1/////////////////////////////////////////
  415. SELECT MAX(P.nombre) AS NOMBRE,COUNT(*) AS ASIGNADOS FROM INVENTO I
  416. INNER JOIN PROFESIONAL P
  417. ON P.id = I.id_profesional
  418. GROUP BY I.ID_PROFESIONAL
  419. ORDER BY ASIGNADOS DESC
  420. /////////////////////////////////2/////////////////////////////////////////////
  421. SELECT R.NOMBRE,COUNT(*)
  422. FROM PAISS P
  423. INNER JOIN REGIONN R
  424. ON R.id = P.ID_REGION
  425. GROUP BY R.NOMBRE
  426. ORDER BY R.NOMBRE
  427. SELECT * FROM
  428. (
  429. SELECT MAX(P.NOMBRE) AS NOMBRE,MAX(P.CAPITAL) AS CAPITAL,COUNT(*) RESPUESTAS
  430. FROM CONTESTACION C
  431. INNER JOIN PAISS P
  432. ON P.ID = C.ID_PAIS
  433. GROUP BY C.ID_PAIS
  434. ORDER BY RESPUESTAS
  435. )
  436. UNION
  437. SELECT * FROM
  438. (
  439. SELECT NOMBRE,CAPITAL,0 AS RESPUESTAS
  440. FROM PAISS
  441. WHERE ID NOT IN(SELECT ID_PAIS FROM CONTESTACION)
  442. )
  443. //////////////////////////////////3///////////////////////////////////////////////////
  444. SELECT * FROM PAISS
  445. WHERE ID NOT IN (SELECT ID_PAIS FROM FRONTERA)
  446. AND ID NOT IN (SELECT ID_PAIS2 FROM FRONTERA)
  447. AND ID NOT IN (SELECT ID_PAIS FROM INVENTOR)
  448. ORDER BY AREA
  449. ////////////////////////////////////////////4/////////////////////////////////////////
  450.  
  451. //////////////////////////////////////////5//////////////////////////////////////////
  452. SELECT * FROM PROFESIONAL
  453. WHERE SALARIO>(
  454. SELECT AVG(SALARIO) FROM
  455. ARE
  456. )
  457. /////////////////////////////////////6///////////////////////////////////////////////////
  458. SELECT P.NOMBRE,COUNT(*) AS CORRECTAS
  459. FROM CONTESTACION C
  460. INNER JOIN RESPUESTA R
  461. ON R.ID = C.ID_RESPUESTA
  462. INNER JOIN PAISS P
  463. ON P.ID = C.ID_PAIS
  464. WHERE R.CORRECTA='si'
  465. GROUP BY P.NOMBRE
  466. ORDER BY CORRECTAS
  467. //////////////////////////////////7//////////////////////////////////////////////////
  468. SELECT I.NOMBRE
  469. FROM INVENTO I
  470. INNER JOIN PROFESIONAL P
  471. ON P.ID = I.ID_PROFESIONAL
  472. INNER JOIN ASIGNACION A
  473. ON A.ID_PROFESIONAL = P.ID
  474. INNER JOIN AREA AA
  475. ON AA.ID = A.ID_AREA
  476. WHERE AA.NOMBRE='Óptica';
  477. ////////////////////////////////////8////////////////////////////////////////////////////
  478. SELECT SUBSTR(NOMBRE,1,1) AS CARACTER, SUM(AREA) as AREA_TOTAL
  479. FROM PAISS
  480. GROUP BY SUBSTR(NOMBRE,1,1)
  481. ORDER BY CARACTER
  482. ////////////////////////////////////9//////////////////////////////////////////////////
  483. SELECT INN.NOMBRE,INN.ANO,INV.NOMBRE
  484. FROM INVENSION I
  485. INNER JOIN INVENTO INN
  486. ON INN.ID = I.ID_INVENTO
  487. INNER JOIN INVENTOR INV
  488. ON INV.ID = I.ID_INVENTOR
  489. WHERE INV.NOMBRE LIKE 'Be%'
  490. ///////////////////////////////10///////////////////////////////////////
  491. SELECT INV.NOMBRE
  492. FROM INVENSION I
  493. INNER JOIN INVENTO INN
  494. ON INN.ID = I.ID_INVENTO
  495. INNER JOIN INVENTOR INV
  496. ON INV.ID = I.ID_INVENTOR
  497. WHERE (INV.NOMBRE LIKE 'B%n' or INV.NOMBRE LIKE 'B%r') and INN.ANO<1900 AND INN.ANO>1800
  498. //////////////////////////////////////////11////////////////////////////////////////////
  499.  
  500. SELECT P.NOMBRE,P.AREA,COUNT(*) TOTAL
  501. FROM FRONTERA F
  502. INNER JOIN PAISS P
  503. ON P.ID = F.ID_PAIS
  504. GROUP BY P.NOMBRE,P.AREA
  505. ORDER BY P.AREA
  506.  
  507. /////////////////////////////////////////12/////////////////////////////////////////////
  508.  
  509. SELECT *
  510. FROM INVENTO
  511. WHERE NOMBRE LIKE 'L%' and LENGTH(NOMBRE)<=4
  512.  
  513. ///////////////////////////////13///////////////////////////////////////////////////////
  514.  
  515. SELECT NOMBRE,SALARIO,COMISION,SALARIO+COMISION
  516. FROM PROFESIONAL
  517. WHERE COMISION>(25*SALARIO)/100
  518. //////////////////////////////////////14////////////////////////////////////
  519.  
  520. SELECT MAX(E.NOMBRE),COUNT(*) AS CONTESTADAS
  521. FROM CONTESTACION C
  522. INNER JOIN RESPUESTA R
  523. ON R.ID = C.ID_RESPUESTA
  524. INNER JOIN PREGUNTA P
  525. ON P.ID = R.ID_PREGUNTA
  526. INNER JOIN ENCUESTA E
  527. ON E.ID = P.ID_ENCUESTA
  528. GROUP BY P.ID_ENCUESTA
  529. ORDER BY CONTESTADAS ASC
  530.  
  531. ////////////////////////////////////15//////////////////////////////////////////
  532. SELECT *
  533. FROM PAISS
  534. WHERE POBLACION >
  535. (
  536. SELECT SUM(POBLACION)
  537. FROM PAISS
  538. WHERE ID_REGION=14
  539. )
  540. //////////////////////////////////////16////////////////////////////////////////////
  541. SELECT A.NOMBRE,A.RANKING,P.NOMBRE FROM AREA A
  542. INNER JOIN PROFESIONAL P
  543. ON P.ID = A.ID_JEFE
  544. WHERE A.ID !=
  545. (
  546. SELECT AA.ID
  547. FROM INVENSION I
  548. INNER JOIN INVENTO INN
  549. ON INN.ID = I.ID_INVENTO
  550. INNER JOIN INVENTOR INV
  551. ON INV.ID = I.ID_INVENTOR
  552. INNER JOIN ASIGNACION A
  553. ON A.ID_PROFESIONAL = INN.ID_PROFESIONAL
  554. INNER JOIN AREA AA
  555. ON AA.ID = A.ID_AREA
  556. WHERE INV.NOMBRE='Pasteur'
  557. )
  558. ///////////////////////////////////////17/////////////////////////////////////////
  559. SELECT *
  560. FROM INVENTO
  561. WHERE ANO =
  562. (SELECT INN.ANO
  563. FROM INVENSION I
  564. INNER JOIN INVENTO INN
  565. ON INN.ID = I.ID_INVENTO
  566. INNER JOIN INVENTOR INV
  567. ON INV.ID = I.ID_INVENTOR
  568. WHERE INV.NOMBRE = 'Benz'
  569. )
  570. //////////////////////////////////////18//////////////////////////////////////////
  571. SELECT NOMBRE,POBLACION,AREA FROM PAISS
  572. WHERE ID NOT IN(SELECT ID_PAIS FROM FRONTERA) AND ID NOT IN(SELECT ID_PAIS2 FROM FRONTERA) AND AREA>=(SELECT AREA FROM PAISS WHERE NOMBRE ='Japon')
  573.  
  574.  
  575. ///////////////////////////////////////19/////////////////////////////////////////
  576. SELECT P.NOMBRE,P2.NOMBRE
  577. FROM FRONTERA F
  578. INNER JOIN PAISS P
  579. ON P.ID = F.ID_PAIS
  580. INNER JOIN PAISS P2
  581. ON P2.ID = F.ID_PAIS2
  582. //////////////////////////////////////20/////////////////////////////////////////
  583.  
  584. SELECT NOMBRE,SALARIO,COMISION
  585. FROM PROFESIONAL
  586. WHERE SALARIO>(2*COMISION) or comision is null
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement