Foros Club Delphi

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

jplj 11-11-2006 00:04:01

Contabilizar
 
Hola:

Quizá el título no sea el más adecuado...

Tengo las siguiente tablas

PERSONAL
.- Id -> Clave maestra
.- categoria
.- departamento
.- nombre

CATEGORIAS
.- Id -> Clave maestra
.- orden -> Campo numérico que me sirve para ordenar las categorías
.- categoria- > Texto

DEPARTAMENTOS
.- Id -> Clave maestra
.- departamento -> Texto


Las dos últimas son auxiliares de la primera.

Lo que quiero saber es el número de personas de cada categoría hay en cada departamento. Para poder completar un formulario similar a:


Departamentos | Categorías
---------------------------------------------------------
| Administrativos | Auxiliares | Contables | Informáticos
------------------------------------------------------------------------
Sanidad | 3 | 5 | 1 | 0
------------------------------------------------------------------------
Vivienda | 4 | 7 | 0 | 0
------------------------------------------------------------------------
Agricultura | 0 | 0 | 0 | 3
------------------------------------------------------------------------

Hasta ahora he pensado en realizar varias consultas para obtener los datos.
Pero quería saber si es posible obtenerlos con una sola, o bien con una por departamento.


Un saludo.

oscarnoe 11-11-2006 00:20:54

Hola Jplj:

La pregunta es:

Que motor/tipo de bbdd y componentes de acceso usas?

jplj 11-11-2006 11:59:18

Ahora uso una base de datos de Access 2000 y empleo Microsoft.Jet.OLEDB.4.0.

jplj 11-11-2006 20:30:29

Hasta ahora puedo obtener los datos por departamento con:

Código SQL [-]
SELECT Count(personal.categoria) AS numero, personal.categoria, Empleos.orden, personal.departamento
FROM Empleos INNER JOIN personal ON Empleos.Empleo = personal.categoria
GROUP BY personal.categoria, Empleos.orden, personal.departamento
HAVING (((personal.departamento)="agricultura"))
ORDER BY Empleos.orden;

¿una sola para todos los departamentos?

oscarnoe 12-11-2006 01:04:13

Estuve mirando, prove a crear un pivot con access 2003, pero con Delphi desde ADO no se pueden consultar. Y en definitiva, como eso es lo que quieres, lo mas simple, mejor.

Creo que con eso y un bucle que te devuelva todos los departamentos y que te rellene un Tstringgrid, te sale un pivot sencillo y resulton.

jplj 13-11-2006 12:51:40

Trabajaremos con el bucle.

Muchas gracias.


La franja horaria es GMT +2. Ahora son las 06:36:26.

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