Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/09/2016, 21:47
jecavi_20
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta consulta que tarda demasiado

buenas noches amigos del foro tengo otro problema ahora con una consulta en postgresql, es que tengo que consultar el sueldo de los trabajadores de lo que va de año dividido en el monto total de cada nomina, por ejemplo en la nomina del sueldo basico ha cobrado xxxx en la nomina vacacional ha cobrado xxxx y asi, son 8 nominas, y se consultan dos tablas una donde estan los montos y la otra donde estan los datos personales, y como en la base de datos hay demasiados registros entonces la consulta tarde casi 1 minuto en dar los montos totales juntos en una sola consulta, pero si se consulta por separado cada nomina tarda 5 o 6 segundos con cada consulta, y yo no soy muy experto en base de datos tal vez puedan ayudarme a mejorarlo porque tengo pocos conocimientos.

este es el codigo de la consulta:


Código SQL:
Ver original
  1. SELECT SUM(b.valsal) AS valsal2
  2.  
  3. FROM sno_personal a, sno_hsalida b
  4.  
  5. WHERE a.cedper LIKE 'xxxxxxx'  AND a.codper = b.codper AND b.codnom='0102' AND tipsal='A' AND b.codperi<'017'
  6.  
  7. UNION
  8.  
  9. SELECT SUM(b.valsal) AS valsal2
  10.  
  11. FROM sno_personal a, sno_hsalida b
  12.  
  13. WHERE a.cedper LIKE 'xxxxxxx'  AND a.codper = b.codper AND b.codnom='0728' AND tipsal='A' AND b.codperi<'017'
  14.  
  15. UNION
  16.  
  17. SELECT SUM(b.valsal) AS valsal2
  18.  
  19. FROM sno_personal a, sno_hsalida b
  20.  
  21. WHERE a.cedper LIKE 'xxxxxxx'  AND a.codper = b.codper AND b.codnom='0755' AND tipsal='A' AND b.codperi<'017'
  22.  
  23. UNION
  24.  
  25. SELECT SUM(b.valsal) AS valsal2
  26.  
  27. FROM sno_personal a, sno_hsalida b
  28.  
  29. WHERE a.cedper LIKE 'xxxxxxx'  AND a.codper = b.codper AND b.codnom='0761' AND tipsal='A' AND b.codperi<'017'
  30.  
  31. UNION
  32.  
  33. SELECT SUM(b.valsal) AS valsal2
  34.  
  35. FROM sno_personal a, sno_hsalida b
  36.  
  37. WHERE a.cedper LIKE 'xxxxxxx'  AND a.codper = b.codper AND b.codnom='0799' AND tipsal='A' AND b.codperi<'017'
  38.  
  39. UNION
  40.  
  41. SELECT SUM(b.valsal) AS valsal2
  42.  
  43. FROM sno_personal a, sno_hsalida b
  44.  
  45. WHERE a.cedper LIKE 'xxxxxxx'  AND a.codper = b.codper AND b.codnom='0829' AND tipsal='A' AND b.codperi<'017'
  46.  
  47. UNION
  48.  
  49. SELECT SUM(b.valsal) AS valsal2
  50.  
  51. FROM sno_personal a, sno_hsalida b
  52.  
  53. WHERE a.cedper LIKE 'xxxxxxx'  AND a.codper = b.codper AND b.codnom='0868' AND tipsal='A' AND b.codperi<'017'
  54.  
  55. UNION
  56.  
  57. SELECT SUM(b.valsal) AS valsal2
  58.  
  59. FROM sno_personal a, sno_hsalida b
  60.  
  61. WHERE a.cedper LIKE 'xxxxxxx'  AND a.codper = b.codper AND b.codnom='0883' AND tipsal='A' AND b.codperi<'017'

[/CODE]

A y el sistema esta hecho en php

Muchas gracias de antemano

Última edición por gnzsoloyo; 08/09/2016 a las 06:25