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 originalSELECT SUM(b.valsal) AS valsal2
FROM sno_personal a, sno_hsalida b
WHERE a.cedper LIKE 'xxxxxxx' AND a.codper = b.codper AND b.codnom='0102' AND tipsal='A' AND b.codperi<'017'
UNION
SELECT SUM(b.valsal) AS valsal2
FROM sno_personal a, sno_hsalida b
WHERE a.cedper LIKE 'xxxxxxx' AND a.codper = b.codper AND b.codnom='0728' AND tipsal='A' AND b.codperi<'017'
UNION
SELECT SUM(b.valsal) AS valsal2
FROM sno_personal a, sno_hsalida b
WHERE a.cedper LIKE 'xxxxxxx' AND a.codper = b.codper AND b.codnom='0755' AND tipsal='A' AND b.codperi<'017'
UNION
SELECT SUM(b.valsal) AS valsal2
FROM sno_personal a, sno_hsalida b
WHERE a.cedper LIKE 'xxxxxxx' AND a.codper = b.codper AND b.codnom='0761' AND tipsal='A' AND b.codperi<'017'
UNION
SELECT SUM(b.valsal) AS valsal2
FROM sno_personal a, sno_hsalida b
WHERE a.cedper LIKE 'xxxxxxx' AND a.codper = b.codper AND b.codnom='0799' AND tipsal='A' AND b.codperi<'017'
UNION
SELECT SUM(b.valsal) AS valsal2
FROM sno_personal a, sno_hsalida b
WHERE a.cedper LIKE 'xxxxxxx' AND a.codper = b.codper AND b.codnom='0829' AND tipsal='A' AND b.codperi<'017'
UNION
SELECT SUM(b.valsal) AS valsal2
FROM sno_personal a, sno_hsalida b
WHERE a.cedper LIKE 'xxxxxxx' AND a.codper = b.codper AND b.codnom='0868' AND tipsal='A' AND b.codperi<'017'
UNION
SELECT SUM(b.valsal) AS valsal2
FROM sno_personal a, sno_hsalida b
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