Ayuda con select

22/05/2007 - 11:10 por Joan Q | Informe spam
Hola a todos/as

Tengo

declare @inicio1 datetime

declare @final1 datetime

declare @inicio2 datetime

declare @final2 datetime

set @inicio1 = '20060101'

set @final1 = '20060430'

set @inici2 = '20070101'

set @final2 = '20070430'



select pt.cod_centro, c.nombre,

sum(isnull(pm.i_bruto, 0)) as mes,

sum(isnull(pe.i_bruto, 0)) as extra,

sum(isnull(pm.i_bruto, 0)) + sum(isnull(pe.i_bruto, 0)) as total1,



from trabajadores t



inner join pagastrabajador pt

on t.codigoempresa = pt.codigoempresa

and t.cod_trabajador = pt.cod_trabajador

and pt.t_paga in (1,2,3,4)

and (pt.f_paga between @inici1 and @final1)



inner join centros c

on t.codigoempresa = c.codigoempresa

and pt.cod_centro = c.cod_centro



full outer join pagastrabajadorconfiguracionmensual pm

on pt.codigoempresa = pm.codigoempresa

and pt.cod_trabajador = pm.cod_trabajador

and pt.t_paga = pm.t_paga

and pt.f_paga = pm.f_paga



full outer join pagastrabajadorconfiguracionextra pe

on pt.codigoempresa = pe.codigoempresa

and pt.cod_trabajador = pe.cod_trabajador

and pt.t_paga = pe.t_paga

and pt.f_paga = pe.f_paga



where t.codigoempresa = 116

and t.clavepercepcion <>'g'



group by pt.cod_centro, c.nombre



order by pt.cod_centro



___________________

SELECT

Idem cambiando @inicio1 y @final1 por @inicio2 y @final2

tenemos lo mismo del periodo '20070101' hasta '20070430'



Ahora necesito además saber la diferencia del importe de las pagas generadas
entre estos 2 periodos.

En la misma linea importe de mensual, extra y total del periodo 2 para poder
sacar las diferencias.



Gracias
 

Leer las respuestas

#1 Joan Q
22/05/2007 - 12:51 | Informe spam
Bueno ya està,

Me faltaba



inner join pagastrabajador pt

on t.codigoempresa = pt.codigoempresa

and t.cod_trabajador = pt.cod_trabajador

and pt.t_paga in (1,2,3,4)

and ((pt.f_paga between @inici1 and @final1) or (pt.f_paga between @inici2
and @final2))



full outer join pagastrabajadorconfiguracionmensual pm

on pt.codigoempresa = pm.codigoempresa

and pt.cod_trabajador = pm.cod_trabajador

and pt.t_paga = pm.t_paga

and pm.f_paga = pt.f_paga

and pm.f_paga between @inici1 and @final1

...

full outer join pagastrabajadorconfiguracionmensual pm2

on pt.codigoempresa = pm2.codigoempresa

and pt.cod_trabajador = pm2.cod_trabajador

and pt.t_paga = pm2.t_paga

and pm2.f_paga = pt.f_paga

and pm2.f_paga between @inici2 and @final2

.


Perdonad por el "tocho"


"Joan Q" escribió en el mensaje
news:
Hola a todos/as

Tengo

declare @inicio1 datetime

declare @final1 datetime

declare @inicio2 datetime

declare @final2 datetime

set @inicio1 = '20060101'

set @final1 = '20060430'

set @inici2 = '20070101'

set @final2 = '20070430'



select pt.cod_centro, c.nombre,

sum(isnull(pm.i_bruto, 0)) as mes,

sum(isnull(pe.i_bruto, 0)) as extra,

sum(isnull(pm.i_bruto, 0)) + sum(isnull(pe.i_bruto, 0)) as total1,



from trabajadores t



inner join pagastrabajador pt

on t.codigoempresa = pt.codigoempresa

and t.cod_trabajador = pt.cod_trabajador

and pt.t_paga in (1,2,3,4)

and (pt.f_paga between @inici1 and @final1)



inner join centros c

on t.codigoempresa = c.codigoempresa

and pt.cod_centro = c.cod_centro



full outer join pagastrabajadorconfiguracionmensual pm

on pt.codigoempresa = pm.codigoempresa

and pt.cod_trabajador = pm.cod_trabajador

and pt.t_paga = pm.t_paga

and pt.f_paga = pm.f_paga



full outer join pagastrabajadorconfiguracionextra pe

on pt.codigoempresa = pe.codigoempresa

and pt.cod_trabajador = pe.cod_trabajador

and pt.t_paga = pe.t_paga

and pt.f_paga = pe.f_paga



where t.codigoempresa = 116

and t.clavepercepcion <>'g'



group by pt.cod_centro, c.nombre



order by pt.cod_centro



___________________

SELECT

Idem cambiando @inicio1 y @final1 por @inicio2 y @final2

tenemos lo mismo del periodo '20070101' hasta '20070430'



Ahora necesito además saber la diferencia del importe de las pagas


generadas
entre estos 2 periodos.

En la misma linea importe de mensual, extra y total del periodo 2 para


poder
sacar las diferencias.



Gracias


Preguntas similares