Re: Recorre select en memoria por cada registro de otra tabla

From: Hellmuth Vargas <hivs77(at)gmail(dot)com>
To: "jvenegasperu (dot)" <jvenegasperu(at)gmail(dot)com>, Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Recorre select en memoria por cada registro de otra tabla
Date: 2017-11-14 14:44:10
Message-ID: CAN3Qy4qx1W3dObL4Kbf41ii-0793_r-aY1-4XeDw-YL2JVSbsQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Jose

La consulta sirve si los empleados trabajan en varias empresas, con
diferentes sueldos, primas y comisiones, por eso la condición del JOIN es
por empresa y periodo.

El 13 de noviembre de 2017, 09:13, jvenegasperu .<jvenegasperu(at)gmail(dot)com>
escribió:

> Hellmuth si todos los empleados trabajaran con una sola empresa el join
> seria suficiente pero
>
> mi pregunta era si puedo por ejemplo hacerle select al cursor que ya tiene
> digamos 5 registros para el periodo. para ellos compararlos con la tabla de
> empleados ya que por ejemplo un empleado podria tener 3 coincidencias otro
> empleado solo 2 coincidencias y otro solo una y en ese caso me gustaria
> armar el insert pero previamente tomar un empleado evaluar cuantas empresas
> le toca efectuar el calculo para cada empresa y guardar el valor final en
> una variable que pondre en el insert ya que me debe quedar una linea por
> cada empleado. espero puedas ayudarme gracias por responder.
>
>
>
> El 12 de noviembre de 2017, 11:02, Hellmuth Vargas <hivs77(at)gmail(dot)com>
> escribió:
>
>> Hola lista
>>
>> Seguramente tiene otra relación empleado_sueldo así
>>
>> periodo|Nombre|empresa|sueldo
>> 201711 empleado1|empresa1|10000
>> 201711|empleado1|empresa2|40000
>> 201711|empleado2|empresa3|20000
>> 201711|empleado2|empresa1|23000
>>
>> Pues creo que con un JOIN es suficiente (si entendí bien el problema) :
>>
>> SELECT a.periodo,a.nombre,a.empresa,a.sueldo,
>> a.sueldo*b.comision as empleado_comision,
>> a.sueldo*b.prima as empleado_prima
>> FROM empleado_sueldo as a
>> JOIN empleados as b
>> ON a.empresa=b.empresa and a.periodo=b.periodo
>>
>>
>>
>>
>>
>>
>> El 11 nov. 2017 12:45 PM, "jvenegasperu ." <jvenegasperu(at)gmail(dot)com>
>> escribió:
>>
>> Hola a todos buen dia
>>
>> Me ha tocado elaborar una planilla de empleados y tengo esta situación
>>
>> del sueldo de cada trabajador se efectua un descuento de acuerdo a la
>> empresa que le administra la pension tengo una tabla con los parametros a
>> usar en ese mes algo asi
>>
>> periodo|empresa|comision|prima
>> 201711|empresa1|10%|13%
>> 201711|empresa2|11%|13%
>> 201711|empresa3|14%|13%
>> 201712|empresa1|15%|13%
>> 201712|empresa2|12%|13%
>> 201712|empresa3|12%|13%
>>
>> pienso escribir una funcion que inserte en una tabla planilla el id del
>> trabajador y multiplique el sueldo por el porcentaje que le corresponda de
>> acuerdo a la empresa que tenga registrado.
>>
>> entiendo que esta primera tabla la podre tener en un cursor asi:
>>
>> OPEN cur FOR SELECT campo FROM tabla where periodo = '201711'
>>
>> Mi pregunta es como recorro o consulto luego ese cursor pora cada trabajador para tomar el porcentaje que le corresponda desde otro cursor donde ire haciendo el insert y el calculo
>>
>> José Mercedes Venegas Acevedo
>> cel Mov RPC 964185205
>> Member of the PHP Documentation Group (Spanish)
>>
>>
>>
>
>
> --
> José Mercedes Venegas Acevedo
> cel Mov RPC 964185205
>
> Member of the PHP Documentation Group (Spanish)
>

--
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message RODRIGUEZ CORTES MARIO IGNACIO 2017-11-15 20:54:38 Problema al dar de alta valor vació en JSON
Previous Message Hellmuth Vargas 2017-11-12 16:02:07 Re: Recorre select en memoria por cada registro de otra tabla