Access - Consultar entre fechas

 
Vista:

Consultar entre fechas

Publicado por Javiera (4 intervenciones) el 16/01/2003 21:54:38
Hola, espero alguien me pueda ayudar:
Tengo una tabla con 3 campos "Nº Documento", "Fecha de Recibo", "Fecha de Envío". Mi consulta es la siguiente:
Quiero obtener una consulta o nueva tabla que me entregue para un rango de fechas, la cantidad de documentos recibidos y enviados por mes.
Por ejemplo: si le doy un rango entre 01-01-02 al 01-01-03 debería obtener los siguientes datos de mi nueva tabla
1er registro
Mes: Enero
Recibidos: 5
Enviados: 3

2ºRegistro:
Mes: Febrero
Recibidos: 10
Enviados: 7
.............................etc hasta Diciembre

Como puedo hacer la consulta si los campos "fecha de recibo" y "fecha de envio" son independientes ( un documento que llega en enero no necesariamente se envia ese mes), es decir, debería filtrar por "fecha de recibido" y obtener la cantidad de recibidos por mes y luego del total filtrar por "fecha de envío" y obtener la cantidad de enviados por mes . Agradezco de antemano la ayuda de Uds. Saludos
Javiera
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Consultar entre fechas

Publicado por Alejandro (4142 intervenciones) el 26/04/2023 00:25:58
¡Hola Javiera!

Para obtener la consulta que deseas, debes realizar dos consultas separadas, una para obtener la cantidad de documentos recibidos por mes y otra para obtener la cantidad de documentos enviados por mes.

Consulta para documentos recibidos por mes:

1
2
3
4
SELECT Month([Fecha de Recibo]) AS Mes, Count(*) AS Recibidos
FROM TuTabla
WHERE [Fecha de Recibo] >= #01-01-02# AND [Fecha de Recibo] <= #01-01-03#
GROUP BY Month([Fecha de Recibo])

Consulta para documentos enviados por mes:

1
2
3
4
SELECT Month([Fecha de Envío]) AS Mes, Count(*) AS Enviados
FROM TuTabla
WHERE [Fecha de Envío] >= #01-01-02# AND [Fecha de Envío] <= #01-01-03#
GROUP BY Month([Fecha de Envío])

Luego, puedes unir las dos consultas en una sola para obtener la información deseada por mes:

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT q1.Mes, q1.Recibidos, q2.Enviados
FROM (
    SELECT Month([Fecha de Recibo]) AS Mes, Count(*) AS Recibidos
    FROM TuTabla
    WHERE [Fecha de Recibo] >= #01-01-02# AND [Fecha de Recibo] <= #01-01-03#
    GROUP BY Month([Fecha de Recibo])
) AS q1
LEFT JOIN (
    SELECT Month([Fecha de Envío]) AS Mes, Count(*) AS Enviados
    FROM TuTabla
    WHERE [Fecha de Envío] >= #01-01-02# AND [Fecha de Envío] <= #01-01-03#
    GROUP BY Month([Fecha de Envío])
) AS q2 ON q1.Mes = q2.Mes

Espero que esta solución te ayude a resolver tu problema. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar