![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Crear Calendario con SQL
Hola a todos:
A traves de una consulta SQL necesito crear un listado en memoria con los día que hay entre dos fechas. El entorno es el siguiente: 1. En una tabla existen dos campos FInicial y FFinal, por ejemplo 01/05/2011 y 25/08/2011, esta fecha pueden ser de cualquier rango pero siempre FInicio<=FFinal. 2. Quiero que con una sola instruccion SELECT de ese rango de fechas me presente una tabla que tenga un dia por cada registro ejem: 20110501 20110502 20110503 ... 20110825 Desde allí ya puedo armar un calendario. Lo primero que se me ocurrió fue hacerlo con un cursor, lo cual es sencillo, pero la aplicación lo requiere como un consulta. He realizado algunas pruebas, algo asi como pero solo obtengo 1 fila. Necesito algo que reemplace a RowCount para que vaya sumando una unidad. Me temo que es dificil pero no pierdo la esperanza. Gracias anticipadas. |
#2
|
||||
|
||||
![]() Vendría bien que nos dijeras en que base de datos lo estás haciendo.
Si se trata de oracle, puedes sacar todos los días entre fechas con este código: SELECT TRUNC(SYSDATE,'y') - 1 + ROWNUM dt FROM all_objects WHERE (TRUNC(SYSDATE,'y') - 1 + ROWNUM) BETWEEN :Fechad AND :FechaH Espero que, como base, te pueda ayudar un poco Última edición por ElKurgan fecha: 02-12-2010 a las 08:02:31. Razón: Han salido caracteres raros en el código |
#3
|
||||
|
||||
Hola,
en una query no sé, pero es bastante usual incluir una tabla de fechas con un registro por día. Generalmente, se usan los campos Fecha Año Mes ( nº y caracter ) Trimestre ( nº y caracter ) Semestre ( nº y caracter ) Dia semana ( nº y caracter ) Con un procedimiento que añada un año completo. Luego, con esta tabla, además de poder hacer lo que quieres ( cruzando tu tabla con ésta ), puedes sacar estadísticas por todos los campos que están incluidos. Espero que te sirva. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#4
|
|||
|
|||
Hola ElKurgan:
Yo uso MS SQL 2005, de todas formas probaré como podría adaptar el ejemplo que me envías, y si ya sabes como resolverlo con MSSQL, te agradecería me lo dijeras. Un saludo |
#5
|
|||
|
|||
Hola fjcg02:
La solución de la tabla ya la tengo implantada, lo que realmente quiero es crear un calendario de 3 meses en tiempo de ejecución y que temporalmente este en memoria, dependiendo de la consulta que realice el usuario. Gracias por tu respuesta |
#6
|
||||
|
||||
Entonces es más fácil.
Sólo tienes que hacer una función que cargue un clientdataset con los días entre el intervalo. Para esos menesteres es lo mejor porque puedes aprovecharte de toda la potencia de los mismos ( funciones Addrecord, deleterecord, locate, ...). Tienes información de este tema específico en delphi al limite. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#7
|
|||
|
|||
Crear Calendario
Crear un tabla tbl_fecha con campos fecha y feriado
Y luego correr esta query : declare @fecIni datetime declare @fecFin datetime SELECT @fecIni = '01/02/2013' SELECT @fecFin = '31/12/2013' WHILE @fecIni <= @fecFin BEGIN INSERT INTO tbl_fecha (fecha, feriado) VALUES (@fecIni ,'N') ---SELECT FECHA = @fecIni SET @fecIni = dateadd(d, 1, @fecIni); END; |
#8
|
||||
|
||||
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
![]() Recuerda poner los tags al código fuente, ejemplo: ![]() Gracias ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Hola gcaffe
Lo que ha puesto el compañero kikin911 es correcto, lo que yo añado es la tabla en memoria.
Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. Última edición por olbeup fecha: 14-12-2012 a las 08:44:14. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear un calendario | alopete | Varios | 9 | 03-04-2017 10:48:12 |
crear un calendario sin usar el Date del sistema | pablopessoa | Varios | 0 | 13-02-2009 19:09:44 |
Como crear calendario y reloj | Mario1980 | Varios | 4 | 15-10-2004 16:20:45 |
Calendario | srangel | JAVA | 1 | 04-09-2004 12:58:08 |
calendario | botones67 | Impresión | 5 | 17-05-2003 16:01:35 |
![]() |
|