Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. do
  2. $do$
  3. declare
  4. project proyectos%ROWTYPE;
  5. type_mov varchar;
  6. id_mov_select int;
  7. presupuesto_valor int;
  8. people_attending int;
  9. type_rrss varchar;
  10. constant int;
  11. begin
  12. id_mov_select := (SELECT max(id_mov) FROM dblink('conn', 'SELECT * FROM movilizacion_general') AS movilizacion_general(id_mov integer, id_ong integer, id_proy integer, presupuesto integer, tipo varchar));
  13. constant := 1;
  14. for project in SELECT * FROM proyectos, (SELECT proyectos.id_proyecto FROM proyectos, (SELECT DISTINCT(recursos.id_proyecto), aprobados, rechazados FROM recursos, (SELECT id_proyecto, COUNT(id_proyecto) AS aprobados FROM recursos WHERE status = 'aprobado' GROUP BY id_proyecto) AS ap, (SELECT id_proyecto, COUNT(id_proyecto) AS rechazados FROM recursos WHERE status = 'rechazado' GROUP BY id_proyecto) AS rech WHERE recursos.id_proyecto = ap.id_proyecto AND recursos.id_proyecto = rech.id_proyecto) AS rechazados_mayor WHERE upper(proyectos.comuna) LIKE upper('Antofagasta') AND proyectos.id_proyecto = rechazados_mayor.id_proyecto AND rechazados > aprobados UNION SELECT proyectos.id_proyecto FROM dblink('conn', 'SELECT id_proy FROM (SELECT id_proy, COUNT(id_mov) AS cantidad FROM movilizacion_general GROUP BY id_proy) AS proyecto_cantidad WHERE cantidad < 60') AS tabla_proy_menos60(id_proy int), proyectos WHERE proyectos.id_proyecto = tabla_proy_menos60.id_proy AND upper(comuna) LIKE upper('Antofagasta')) AS elected WHERE elected.id_proyecto = proyectos.id_proyecto
  15.  
  16. LOOP
  17. id_mov_select := id_mov_select + constant;
  18. RAISE NOTICE '%', id_mov_select;
  19. type_mov := ('{marcha,redes sociales}'::text[])[ceil(random()*2)];
  20.  
  21. presupuesto_valor := 11 / (SELECT COUNT(consultas.id_proyecto) FROM (SELECT proyectos.id_proyecto FROM proyectos,
  22. (SELECT DISTINCT(recursos.id_proyecto), aprobados, rechazados FROM recursos,
  23. (SELECT id_proyecto, COUNT(id_proyecto) AS aprobados FROM recursos WHERE status = 'aprobado' GROUP BY id_proyecto)
  24. AS ap,
  25. (SELECT id_proyecto, COUNT(id_proyecto) AS rechazados FROM recursos WHERE status = 'rechazado' GROUP BY id_proyecto)
  26. AS rech
  27. WHERE recursos.id_proyecto = ap.id_proyecto
  28. AND recursos.id_proyecto = rech.id_proyecto) AS rechazados_mayor
  29. WHERE proyectos.comuna = 'Antofagasta'
  30. AND proyectos.id_proyecto = rechazados_mayor.id_proyecto
  31. AND rechazados > aprobados
  32. UNION
  33. SELECT proyectos.id_proyecto FROM dblink('conn', 'SELECT id_proy FROM (SELECT id_proy, COUNT(id_mov) AS cantidad FROM movilizacion_general GROUP BY id_proy)
  34. AS proyecto_cantidad WHERE cantidad < 60')
  35. AS tabla_proy_menos60(id_proy int),
  36. proyectos
  37. WHERE proyectos.id_proyecto = tabla_proy_menos60.id_proy
  38. AND comuna='Antofagasta') AS consultas);
  39.  
  40.  
  41. INSERT INTO test(id_mov, id_ong, id_proy, presupuesto, tipo)
  42. VALUES (id_mov_select,1,project.id_proyecto, presupuesto_valor,type_mov);
  43.  
  44. IF ('marcha' = type_mov) THEN
  45. people_attending := random()*(100000-100)+100;
  46. INSERT INTO test_marcha(id_mov, fecha, lugar,n_esperado_personas)
  47. VALUES (id_mov_select,CURRENT_DATE + 90 * interval '1 day','vitacura',people_attending);
  48.  
  49. ELSE
  50. IF(project.tipo = 1) THEN
  51. type_rrss := 'spam';
  52. ELSIF (project.tipo = 2) THEN
  53. type_rrss := 'video';
  54. ELSE
  55. type_rrss := 'imagenes';
  56. END IF;
  57.  
  58. INSERT INTO test_rrss(id_mov,tipo_contendio, fecha, duracion)
  59. VALUES (id_mov_select, type_rrss ,CURRENT_DATE, 90);
  60.  
  61. END IF;
  62.  
  63. END LOOP;
  64. end;
  65. $do$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement