Realizar una consulta

30/07/2007 - 14:11 por sir_gragon | Informe spam
Tengo una tabla con datos y entre ellos el sexo, y me piden que
presente unos totales, por sexo y total de ambos, en una sola fila.
Tabla
Cod_trabajador, Tip_Trabajador, Sexo

Peticion:
Tipo_Trabajador, HOMBRE, MUJER, TOTAL

Cual seria la forma de resolverlo?
Gracias
SQLServer 2000

Preguntas similare

Leer las respuestas

#1 Miguel Egea
30/07/2007 - 14:49 | Informe spam
Si es el contador

Select tipo_trabajador, sum(case sexo when 'V' then 1 else 0 end) Hombre,
sum( case sexo when 'M' then 1 else 0 end) Mujer, count(*)
from tabla
group by tipo_trabajador.

Saludos
Miguel Egea

"sir_gragon" wrote in message
news:
Tengo una tabla con datos y entre ellos el sexo, y me piden que
presente unos totales, por sexo y total de ambos, en una sola fila.
Tabla
Cod_trabajador, Tip_Trabajador, Sexo

Peticion:
Tipo_Trabajador, HOMBRE, MUJER, TOTAL

Cual seria la forma de resolverlo?
Gracias
SQLServer 2000

Respuesta Responder a este mensaje
#2 Alejandro Mesa
30/07/2007 - 14:56 | Informe spam
Puedes usar una expresion "case" junto con la funcion de grupo "sum".

select
tip_trabajador,
sum(case when sexo = 'M' then 1 else 0 end) as hombre,
sum(case when sexo = 'F' then 1 else 0 end) as mujer,
sum(case when sexo is null or (sexo not in ('M', 'F')) then 1 else 0
end) as otros,
count(*) as total
from
dbo.t1
group by
tip_trabajador
go

Si tienes una restriccion de "not null" y check(sexo in ('M', 'F')),
entonces puedes eliminar el calculo de "otros".


AMB

"sir_gragon" wrote:

Tengo una tabla con datos y entre ellos el sexo, y me piden que
presente unos totales, por sexo y total de ambos, en una sola fila.
Tabla
Cod_trabajador, Tip_Trabajador, Sexo

Peticion:
Tipo_Trabajador, HOMBRE, MUJER, TOTAL

Cual seria la forma de resolverlo?
Gracias
SQLServer 2000


Respuesta Responder a este mensaje
#3 sir_gragon
31/07/2007 - 13:15 | Informe spam
On 30 jul, 14:56, Alejandro Mesa
wrote:
Puedes usar una expresion "case" junto con la funcion de grupo "sum".

select
tip_trabajador,
sum(case when sexo = 'M' then 1 else 0 end) as hombre,
sum(case when sexo = 'F' then 1 else 0 end) as mujer,
sum(case when sexo is null or (sexo not in ('M', 'F')) then 1 else 0
end) as otros,
count(*) as total
from
dbo.t1
group by
tip_trabajador
go

Si tienes una restriccion de "not null" y check(sexo in ('M', 'F')),
entonces puedes eliminar el calculo de "otros".

AMB

"sir_gragon" wrote:
> Tengo una tabla con datos y entre ellos el sexo, y me piden que
> presente unos totales, por sexo y total de ambos, en una sola fila.
> Tabla
> Cod_trabajador, Tip_Trabajador, Sexo

> Peticion:
> Tipo_Trabajador, HOMBRE, MUJER, TOTAL

> Cual seria la forma de resolverlo?
> Gracias
> SQLServer 2000



Esto... GRACIAS, me ha servido ...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida