Duda sobre la exportación a excel de los datos de una consulta realizada a la base de datos access
Hola que bueno que te encuentro, tus respuestas siempre me han sido de ayuda. Tengo un problemita quiero realizar una consulta para exportarla a exel pero que solo me exporte los datos de la semana más reciente. Espero me puedas ayudar gracias...
1 Respuesta
Respuesta de santiagomf
1
1
santiagomf, Más de 35 años en la informática y más de 20 trabajando con...
Para lo que quieres hacer, lo que necesitas es crear una consulta de selección. Supongamos que tienes una tabla de "ventas" con los siguientes datos: codigoCliente, fechaVenta e importe. El código SQL para ver todos los datos sería: SELECT codigoCliente,fechaVenta,importe FROM ventas Pero lo que tu quieres es sólo los de la última semana, por lo que tendremos que añadir la condición "WHERE". Si lo que quieres son los datos de los últimos 7 días, tendrás que poner que la fecha sea mayor o igual que la fecha de hoy menos 7. SELECT codigoCliente,fechaVenta,importe FROM ventas WHERE fechaVenta>=now()-7 Si lo que quieres es la semana actual (desde el lunes hasta hoy), tendrías que poner que al día de hoy le reste el número de día de la semana y sume 1. Eso daría la fecha del lunes de esta semana. Sería: SELECT codigoCliente,fechaVenta,importe FROM ventas WHERE fechaVenta>=now()-weekday(now())+1 Por último indicar que la función now() devuelve la fecha/hora del sistema en este momento, por lo que al restarle 7 o, el segundo caso, trasladarlo hasta el lunes, conserva la hora del día. Eso presenta el siguiente problema: si quieres ver las ventas de los últimos 7 días sólo presentará las realizadas a partir del primer día a la misma hora que tenga el sistema en este momento. Esto es, si se vendió hace 7 días a las 9 de la mañana y son ahora las 10 no saldría. Para evitar eso podemos calcular la fecha de hoy reconstruyéndola sin la hora. Esto dejaría las 2 consultas de la siguiente forma: SELECT codigoCliente,fechaVenta,importe FROM ventas WHERE fechaVenta>=dateserial(year(now()),month(now()),day(now()))-7 Y la segunda sería: SELECT codigoCliente,fechaVenta,importe FROM ventas WHERE fechaVenta>=dateserial(year(now()),month(now()),day(now()))-weekday(dateserial(year(now()),month(now()),day(now())))+1