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)

Preguntas similare

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)


Respuesta Responder a este mensaje
#2 Joan Q.
31/03/2005 - 12:20 | Informe spam
Hola Maxi, gracias por responder.

Perdona por haberme expresado fatal. Quiero hacer operaciones con los
resultados de las sumas de los importes de los conceptos agrupados por años.
Es decir, en el resultado y en la linea 3 (17998.4600) es la suma de todos
los conceptos del año 2003 y en el resultado de la linea 18(19949.3400) es
la suma de todos los conceptos del año 2004. Yo quiero la diferencia entre
éstos (1950.88) dividido entre los días efectivamente trabajados (no salen
en este select). Luego necsito hacer más operaciones con los

Había pensado en asociar las cantidades anteriores a una variable para poder
hacer las operaciones, de la misma manera que lo haría una aplicación que
cogiera los datos.
Joan Q

"Maxi" escribió en el mensaje
news:
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)
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida