Consulta contar mismo dato en dos campos

Tengo dos campos de fechas en una misma tabla (emitidos y aceptados) Necesito contar el numero de aceptados y de emitidos de un mes determinado a través de una consulta (ej */11/2005).

1 Respuesta

Respuesta
1
La consulta sera de la siguiente forma
SELECT COUNT(*) FROM <TABLAS>
WHERE EMITIDOS>='01/11/2005' AND EMITIDOS<='31/11/2005' AND ACEPTADOS>='01/11/2005' AND ACEPTADOS<='31/11/2005'
Y sinmplemente le pasas las fechas com parámetro, es decir, las calculas en tu programa o macro
Soy un poco torpe. ¿Cómo meto tu ejemplo en la consulta estando en modo diseño?
Cuando estas en modo diseño en Access, en la parte superior veras un botón que pone SQL, seleccionalo y en el panel que aparece debajo, copia y pega la consulta, y y nodifica los nombres de la tabla y de los campos.
Me aparece tipos no coinciden
La tabla se llama "Presupuestos 2005+2006" y los campos "Entrega" y "Aceptado", ambos son tipo fecha. ¿Qué me hago mal?
Lo que pasa es que cuando pones las fechas entre comillas, la base de datos lo interpreta como un string, en vez de com una fecha, a no ser que el formato sea el mismo.
Entonces, lo que tienes que hacer es modificar el formato, ¿cómo lo haces? Es fácil simplemente prueba a poner las fechas entre comillas de la siguiente forma:
'31/11/2005'
'31-11-2005'
'31-Feb-2005'
Alguna de estas combinaciones seguramente sera la buena, si no es así, prueba otras que se te ocurran, o simplemente mira como están las fechas en tu base de datos y ponlas de la misma forma en la query
Veamos, el formato de fecha es la corta y la pongo tal cual está en la consulta anterior, pues esta consulta tira de los datos de una consulta de unión que une presupuestos 2005+2006, y en esas tablas sí son formato de fecha corta. ¿Puede estar ahí el problema, debido a que tomamos los datos de una consulta anterior?
Si, efectivamente el problema vendrá por ahí, porque los datos vienen de una consulta anterior en un fomrato distinto al esperado.
Bueno, agradecerte de antemano todo tu esfuerzo y atención y pedirte si podríamos crear una consulta nueva que contase de ambas tablas (presupuestos 2005 y presupuestos 2006) los aceptados y los entregados. ¿Cómo se haría?
La conjulta seria entonces ahora de la siguiente forma:
SELECT * FROM <TABLAS>
WHERE EMITIDOS>='01/11/2005' AND EMITIDOS<='31/11/2005' AND ACEPTADOS>='01/11/2005' AND ACEPTADOS<='31/11/2005'
UNION ALL
SELECT * FROM <TABLAS>
WHERE EMITIDOS>='01/11/2006' AND EMITIDOS<='31/11/2006' AND ACEPTADOS>='01/11/2006' AND ACEPTADOS<='31/11/2006'
Empezando de las forma más simple la consulta (solo los entregados y solo de la tabla prestos 2005 con la condición sola de >=1/11/2005) me aparece esto en el formato SQL.
SELECT [Presupuestos 2005].Entrega
FROM [Presupuestos 2005]
WHERE ((([Presupuestos 2005].Entrega)>=#11/1/2005#));
Observa que la fecha me la pone en ingles mm/dd/aaaa. Si te parece te puedo mandar el archivo access y a ver si lo consigues pues me tiene amargado. (Vaya torpe que soy, je je).
tambien he observado que cuando introduzco en la consulta <31/11/2005 me lo convierte en: <#01/11/1931#/2005
¿Qué pasa con la fecha? ¿No reconoce el formato 2000?
Efectivamente, eso es lo que te ocurre, que no reconoce le formato, como te comente, debes de realizar pruebas con disintas combinaciones para conseguir que funcione.
En cuanto soluciones este problema de formato, todo ira como la seda.
No pongas la fecha entre almohadillas, debes de ponerla entre comillas simples para que te funcione correctamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas