Urgente consulta en Access

Hola amigo!
Resulta que tengo una tabla en access llamada "Listado maestro" con los siguientes campos:
Cod_Norma: Código de la norma
Nombre: Nombre de la norma
Fec_Elab: Fecha de realización
Fec_Edi: Fecha de Edición
Estado: Estado de aprobación (Aprobada o desaprobada)
Como puedes notar esta tabla almacena los datos concernientes a las normas de una empresa
El código de la norma está estructurado así:
Ej:
040201
Donde los dos primeros números significan el código de la subdirección.
Los dos siguientes el código del departamento...
... Y los dos últimos el consecutivo de la norma.
Necesito realizar una consulta que me cuente el número de normas que existen por cada subdirección y departamento
Es decir que me cuente aquellos datos del campo Cod_Norma que empiecen por:
0300: Dirección Admitiva
0400: Subdirección Admitiva
0402: Departamento de planeación
Etc...
Realmente no se mucho de SQL pero dentro de lo poco que he estudiado ha construido el siguiente código para darte una idea:
SELECT COUNT([Listado Maestro].Cod_Norma) AS DAdmitiva
FROM [Listado Maestro]
WHERE ((([Listado Maestro].Cod_Norma) Like "0300*"));
Con este código sólo me cuenta las normas que empiezan por "0300*" es decir las correspondientes a la dirección administrativa. Pero no se como meter las demás cuentas y que a su vez aparezcan en columnas.
¿Dónde puedo encontrar un buen manual de SQL orientado a Microsoft Access?
De antemano muchas Gracias amigo!
Saludos :-)

1 respuesta

Respuesta
1
En la web del programador puedes encontrar muchos manuales de sql, pero te puedo acercar bastante a la solución utilizando la sentencia group by, la solución seria algo así como:
select cod_norma,count(*)
from tabla
group by substring(0,4,cod_norma)
Si no entiendes como funciona el group by, lee sobre ello, si el substring no funciona, puede que la sintaxis no este bien, pero la idea es sacar los primeros 4 dígitos, y si no encuentras lo del group by, lo que hace es agrupar, entonces por cada substring que encuentre, contara solo para ellos
Dejalo así:
SELECT Left([Listado Maestro].Cod_Norma,4) AS Código, Count(*) AS Total
FROM [Listado Maestro]
GROUP BY Left([Listado Maestro].Cod_Norma,4);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas