Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta para agrupar (https://www.clubdelphi.com/foros/showthread.php?t=68121)

sizne 26-05-2010 00:26:04

Consulta para agrupar
 
Hola a todos/as
Pueden ayudarme a realizar una consulta, por favor? Preciso para sacar mis valores estadisticos.
Tengo varios campos de un persona, como ser CI,Nombres, apellidos, edad, sexo,departamento(ó provincias), FechaInscripcion,carrera, etc...

1.Cuantos hombres y mujeres existen en cada departamento.
ejemplo: Tarija,4 hombres y 3 mujeres; Santa Cruz, 12 hombres y 9 mujeres...etc
2.Cuántos hombres y mujeres se inscribieron hasta la actualidad, es decir; si la inscripcion comenzo el año 2005, entonces seguira hasta ahora 2006,2007,2008..2010. Quiero que me muestre por años:
ejemplo: 2005, 12 hombres y 10 mujeres

De tal forma esto quiero visualizar en un QRChart1.
Ah estoy usando tablas ADOQUERY. Programando en Delphi 7 y usando QuickRep


Saludos!

rgstuamigo 26-05-2010 00:48:56

Un primer acercamiento a lo que quieres sería:
La primera
:
Código SQL [-]
select Deparatamento, sexo, Count(sexo) From Persona Group by Departamento,sexo;

La segunda
:
Código SQL [-]
select Year(FechaInscripcion) as Anio, sexo, Count(sexo) From Persona Group by Year(FechaInscripcion),sexo;
Aunque en éste caso los resultados va a ser de ésta forma:
En la primer consulta:
Cita:

Tarija___Hombres___4
Tarija___Mujeres___ 3
...
En la segunda consulta:
Cita:

2005____Hombres____12
2005____Mujeres____10
...
La forma como lo quieres mostrar tú, es un tanto tediosa hacerlo por lo forma en que tienes estructurada tu tabla en tu base de dato,pero si tanto insiste mostrarlo así, pues quizas éste hilo (que tú mismo iniciaste) te pueda ayudar.;)
Saludos...:)

movorack 26-05-2010 01:09:59

Se me ocurre que con un case puedas encontrar una solucion a tu caso...

a ver debes hacer conteo uno a uno de los hombres y mujeres que están en un departamento e inscritos en determinado año.

entonces un par de case algo así

Código SQL [-]
--Mujeres
(CASE
  WHEN sexo = 'F' THEN 1
  ELSE 0
END) as mujeres

-- Hombres
(CASE
  WHEN sexo = 'M' THEN 1
  ELSE 0
END) as hombres

Si haces una consulta simple usando los case arrojarian unos resultados como estos

DPTO__MUJERES_HOMBRES
Tarija__1__0
Tarija__0__1
Tarija__1__0
Tarija__1__0
Tarija__1__0
Tarija__0__1
Tarija__1__0
Tarija__1__0

(Hay mas mujeres que hombres :D:D)

si a la misma consulta le haces SUM a cada una de las columnas tendras los totales por DPTO y/o AÑO

es solo una idea...

fjcg02 26-05-2010 10:06:56

Hola,
mira este post e intenta adaptarlo a tus necesidades. Es exactamente lo que necesitas.

http://www.clubdelphi.com/foros/show...ght=case+month

Saludos


La franja horaria es GMT +2. Ahora son las 05:16:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi