variables

30/03/2005 - 11:37 por Joan Q. | Informe spam
Hola a todos/as



Supongo que será pedir peras al olmo (lo que hacen algunos para no emplear
visual Studio¡¡), pero puedo asociar el resultado de la linea 3 del idem 17998.4600 a una variable para utilizarlo en el mismo select.

Es decir yo quiero añadir al final una linea en el select que sea el
producto del resultado 17998.4600 dividido entre el resultado de la linea 4
(por ejemplo). No sé si me explico.

Joan Q



use x



declare @a datetime

declare @z datetime



set @a = '20030101'

set @z = '20040101'



select

'%_nombre' = GROUPING(t.nombre),

'%_año' = GROUPING (convert(char(6), datename(year, pc.f_paga))),

'%_tpaga' = GROUPING (pc.t_paga),

'%_cs.concepto' = GROUPING(cs.den_concepto),

t.nombre , convert(char(6), datename(year, pc.f_paga)) as año,

cs.den_concepto,pc.t_paga,sum(pc.importe) as importe



from trabajadores t



inner join empresas e

on t.codigoempresa = e.codigoempresa



inner join pagastrabajadorconceptos pc

on t.codigoempresa = pc.codigoempresa

and t.cod_trabajador = pc.cod_trabajador

and (datename (year, pc.f_paga) = datename (year, @a)

or (datename (year, pc.f_paga)) = datename (year, @z))




inner join conceptossalariales cs

on cs.tablaconceptos = e.cod_tablaconceptos

and cs.num_concepto = pc.cod_concepto



where t.codigoempresa in (116, 136, 151, 149, 108)

and t.clavepercepcion <> 'g'

and t.epigrafe <> 0

and t.cod_trabajador = 495



group by t.nombre, convert(char(6), datename(year, pc.f_paga)),

pc.t_paga, cs.den_concepto with rollup



order by convert(char(6), datename(year, pc.f_paga)), pc.t_paga,
cs.den_concepto





Resultado:



%_nombre %_año %_tpaga %_cs.concepto nombraño den_concepto
t_paga importe

-

0 1 1 1 PEPE NULL NULL
NULL 37947.8000

1 1 1 1 NULL NULL NULL
NULL 37947.8000

0 0 1 1 PEPE 2003 NULL
NULL 17998.4600

0 0 0 1 PEPE 2003 NULL
1 14780.9900

0 0 0 0 PEPE 2003 Antiguedad
1 84.3700

0 0 0 0 PEPE 2003 Ayuda estudios
1 35.3700

0 0 0 0 PEPE 2003 Complemento I.T.
1 104.6300

0 0 0 0 PEPE 2003 Complemento puesto
1 3084.3600

0 0 0 0 PEPE 2003 COTIZACION CONT.COMUNES
1 689.0200

0 0 0 0 PEPE 2003 COTIZACION DESEMPLEO
1 227.2300

0 0 0 0 PEPE 2003 COTIZACION FORMACION PROF.
1 14.6700

0 0 0 0 PEPE 2003 COTIZACION I.R.P.F.
1 1259.1000

0 0 0 0 PEPE 2003 Plus Transporte
1 848.5900

0 0 0 0 PEPE 2003 Salario Base
1 8433.6500

0 0 0 1 PEPE 2003 NULL
2 3217.4700

0 0 0 0 PEPE 2003 Antiguedad
2 21.2700

0 0 0 0 PEPE 2003 Complemento puesto
2 777.5700

0 0 0 0 PEPE 2003 COTIZACION I.R.P.F.
2 292.5000

0 0 0 0 PEPE 2003 Salario Base
2 2126.1300

0 0 1 1 PEPE 2004 NULL
NULL 19949.3400

0 0 0 1 PEPE 2004 NULL
1 16443.0400

0 0 0 0 PEPE 2004 Antiguedad
1 91.6800

0 0 0 0 PEPE 2004 Atrasos
1 71.1500

0 0 0 0 PEPE 2004 Ayuda estudios
1 36.4800

0 0 0 0 PEPE 2004 Complemento puesto
1 3615.8000

0 0 0 0 PEPE 2004 COTIZACION CONT.COMUNES
1 761.3300

0 0 0 0 PEPE 2004 COTIZACION DESEMPLEO
1 251.0400

0 0 0 0 PEPE 2004 COTIZACION FORMACION PROF.
1 16.1900

0 0 0 0 PEPE 2004 COTIZACION I.R.P.F.
1 1529.8500

0 0 0 0 PEPE 2004 Plus Transporte
1 904.0400

0 0 0 0 PEPE 2004 Salario Base
1 9165.4800

0 0 0 1 PEPE 2004 NULL
2 3506.3000

0 0 0 0 PEPE 2004 Antiguedad
2 22.9200

0 0 0 0 PEPE 2004 Complemento puesto
2 853.3000

0 0 0 0 PEPE 2004 COTIZACION I.R.P.F.
2 338.7100

0 0 0 0 PEPE 2004 Salario Base
2 2291.3700



(36 filas afectadas)
 

Leer las respuestas

#1 Maxi
30/03/2005 - 15:29 | Informe spam
Hola, no entiendo bien que necesitas hacer? poner una fila en una variable?
cual fila y pora que?


Salu2
Maxi


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



Supongo que será pedir peras al olmo (lo que hacen algunos para no emplear
visual Studio¡¡), pero puedo asociar el resultado de la linea 3 del idem > 17998.4600 a una variable para utilizarlo en el mismo select.

Es decir yo quiero añadir al final una linea en el select que sea el
producto del resultado 17998.4600 dividido entre el resultado de la linea
4
(por ejemplo). No sé si me explico.

Joan Q



use x



declare @a datetime

declare @z datetime



set @a = '20030101'

set @z = '20040101'



select

'%_nombre' = GROUPING(t.nombre),

'%_año' = GROUPING (convert(char(6), datename(year, pc.f_paga))),

'%_tpaga' = GROUPING (pc.t_paga),

'%_cs.concepto' = GROUPING(cs.den_concepto),

t.nombre , convert(char(6), datename(year, pc.f_paga)) as año,

cs.den_concepto,pc.t_paga,sum(pc.importe) as importe



from trabajadores t



inner join empresas e

on t.codigoempresa = e.codigoempresa



inner join pagastrabajadorconceptos pc

on t.codigoempresa = pc.codigoempresa

and t.cod_trabajador = pc.cod_trabajador

and (datename (year, pc.f_paga) = datename (year, @a)

or (datename (year, pc.f_paga)) = datename (year, @z))




inner join conceptossalariales cs

on cs.tablaconceptos = e.cod_tablaconceptos

and cs.num_concepto = pc.cod_concepto



where t.codigoempresa in (116, 136, 151, 149, 108)

and t.clavepercepcion <> 'g'

and t.epigrafe <> 0

and t.cod_trabajador = 495



group by t.nombre, convert(char(6), datename(year, pc.f_paga)),

pc.t_paga, cs.den_concepto with rollup



order by convert(char(6), datename(year, pc.f_paga)), pc.t_paga,
cs.den_concepto





Resultado:



%_nombre %_año %_tpaga %_cs.concepto nombraño den_concepto
t_paga importe

-

0 1 1 1 PEPE NULL NULL
NULL 37947.8000

1 1 1 1 NULL NULL NULL
NULL 37947.8000

0 0 1 1 PEPE 2003 NULL
NULL 17998.4600

0 0 0 1 PEPE 2003 NULL
1 14780.9900

0 0 0 0 PEPE 2003 Antiguedad
1 84.3700

0 0 0 0 PEPE 2003 Ayuda estudios
1 35.3700

0 0 0 0 PEPE 2003 Complemento I.T.
1 104.6300

0 0 0 0 PEPE 2003 Complemento puesto
1 3084.3600

0 0 0 0 PEPE 2003 COTIZACION CONT.COMUNES
1 689.0200

0 0 0 0 PEPE 2003 COTIZACION DESEMPLEO
1 227.2300

0 0 0 0 PEPE 2003 COTIZACION FORMACION
PROF.
1 14.6700

0 0 0 0 PEPE 2003 COTIZACION I.R.P.F.
1 1259.1000

0 0 0 0 PEPE 2003 Plus Transporte
1 848.5900

0 0 0 0 PEPE 2003 Salario Base
1 8433.6500

0 0 0 1 PEPE 2003 NULL
2 3217.4700

0 0 0 0 PEPE 2003 Antiguedad
2 21.2700

0 0 0 0 PEPE 2003 Complemento puesto
2 777.5700

0 0 0 0 PEPE 2003 COTIZACION I.R.P.F.
2 292.5000

0 0 0 0 PEPE 2003 Salario Base
2 2126.1300

0 0 1 1 PEPE 2004 NULL
NULL 19949.3400

0 0 0 1 PEPE 2004 NULL
1 16443.0400

0 0 0 0 PEPE 2004 Antiguedad
1 91.6800

0 0 0 0 PEPE 2004 Atrasos
1 71.1500

0 0 0 0 PEPE 2004 Ayuda estudios
1 36.4800

0 0 0 0 PEPE 2004 Complemento puesto
1 3615.8000

0 0 0 0 PEPE 2004 COTIZACION CONT.COMUNES
1 761.3300

0 0 0 0 PEPE 2004 COTIZACION DESEMPLEO
1 251.0400

0 0 0 0 PEPE 2004 COTIZACION FORMACION
PROF.
1 16.1900

0 0 0 0 PEPE 2004 COTIZACION I.R.P.F.
1 1529.8500

0 0 0 0 PEPE 2004 Plus Transporte
1 904.0400

0 0 0 0 PEPE 2004 Salario Base
1 9165.4800

0 0 0 1 PEPE 2004 NULL
2 3506.3000

0 0 0 0 PEPE 2004 Antiguedad
2 22.9200

0 0 0 0 PEPE 2004 Complemento puesto
2 853.3000

0 0 0 0 PEPE 2004 COTIZACION I.R.P.F.
2 338.7100

0 0 0 0 PEPE 2004 Salario Base
2 2291.3700



(36 filas afectadas)


Preguntas similares