Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

consulta sql: comparativa de visitas de un trimestre en dos años

Estas en el tema de consulta sql: comparativa de visitas de un trimestre en dos años en el foro de Bases de Datos General en Foros del Web. Hola, quiero hacer una consulta en una tabla de access para realizar una comparativa de un trimestre de dos años diferentes. Se trata de una ...
  #1 (permalink)  
Antiguo 14/07/2009, 05:41
Avatar de arprielo  
Fecha de Ingreso: octubre-2007
Mensajes: 67
Antigüedad: 17 años, 2 meses
Puntos: 0
consulta sql: comparativa de visitas de un trimestre en dos años

Hola, quiero hacer una consulta en una tabla de access para realizar una comparativa de un trimestre de dos años diferentes. Se trata de una tabla donde se ingresan las visitas (quien, donde y cuando) de personas que entran en una zona restringida de una Web.

Por tanto, tenemos una tabla llamada "visitas" con los campos "persona", "accion" y "fecha":

persona | accion | fecha
------------------------------
pepe____zona1__03/02/07
juan____zona2___14/02/07
rosa____zona1___25/03/07
pedro___zona1___13/05/07
rosa____zona1___06/01/08
ana_____zona1___11/02/08
ana_____zona1___20/03/08

La consulta que quiero realizar es una comparativa de las visitas realizadas en el 1º trimestre dentro de la zona1, por lo me quedaria así:

persona | tri_07 | tri_08
------------------------------
rosa______1______1
pepe______1
ana______________2

He estado manejando consultas de tabla de referencias cruzadas, pero no consigo sacar el resultado esperado. No se si la cosa va por ahí ó por otro sistema de consulta, pero lo veo bastante complicado para un novel.

Espero que me podáis echar una mano, si es posible. Gracias

Saludos,
  #2 (permalink)  
Antiguo 16/07/2009, 02:46
Avatar de arprielo  
Fecha de Ingreso: octubre-2007
Mensajes: 67
Antigüedad: 17 años, 2 meses
Puntos: 0
Alguna idea?

Es posible poder hacer esto???
  #3 (permalink)  
Antiguo 16/07/2009, 03:09
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 4 meses
Puntos: 18
Respuesta: consulta sql: comparativa de visitas de un trimestre en dos años

A ver si te sirve algo asi:

SELECT persona, Sum(Abs(IIf([fecha]>=#1/1/2007# And [fecha]<=#3/31/2007#,True,False))) AS Tri_07, Sum(Abs(IIf([fecha]>=#1/1/2008# And [fecha]<=#3/31/2008#,True,False))) AS Tri_08
FROM NombreTabla
GROUP BY persona,accion
HAVING accion="zona1";

Un saludo
  #4 (permalink)  
Antiguo 16/07/2009, 05:04
Avatar de arprielo  
Fecha de Ingreso: octubre-2007
Mensajes: 67
Antigüedad: 17 años, 2 meses
Puntos: 0
Estupendo!

Gracias Taribo007, me puede valer es casi lo que queria, solo que aparece pedro que al no tener niguna visita no deberia salir. Te dejo como sale:

persona | Tri_07 | Tri_08
ana_______0______2
pedro_____0______0
pepe______1______0
rosa______1______1

Si es posible discriminar a los que no tienen visitas, mucho mejor. Si no me puede valer así.

Saludos,
__________________
Viva Linux! viva Ubuntu...!
  #5 (permalink)  
Antiguo 16/07/2009, 05:19
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 4 meses
Puntos: 18
Respuesta: consulta sql: comparativa de visitas de un trimestre en dos años

A ver asi:
SELECT persona, Sum(Abs(IIf([fecha]>=#1/1/2007# And [fecha]<=#3/31/2007#,True,False))) AS Tri_07, Sum(Abs(IIf([fecha]>=#1/1/2008# And [fecha]<=#3/31/2008#,True,False))) AS Tri_08
FROM NombreTabla
GROUP BY persona, accion
HAVING accion="zona1" AND (Sum(Abs(IIf([fecha]>=#1/1/2007# And [fecha]<=#3/31/2007#,True,False)))<>0 OR Sum(Abs(IIf([fecha]>=#1/1/2008# And [fecha]<=#3/31/2008#,True,False)))<>0);

Un saludo
  #6 (permalink)  
Antiguo 16/07/2009, 06:26
Avatar de arprielo  
Fecha de Ingreso: octubre-2007
Mensajes: 67
Antigüedad: 17 años, 2 meses
Puntos: 0
Solucionado!!!

Muchas gracias, me ha servido de mucha ayuda.

Por cierto bonita Web. Si algún día quiero regalar un buen vino date por seguro que visitare tú Web.

Saludos,
__________________
Viva Linux! viva Ubuntu...!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:04.