![]() |
ordenar base de datos
hola
tengo una base de datos hecha en delhi 4 modelo paciente fecha hora a 12/12/2008 11:00 d 21/12/2008 11:35 c 22/12/2008 12:20 nesecito que me la ordene por fecha y por hora , me podrian ayudar el de arriba seria como me tendria que quedar.. muchas gracias |
|
Hola andres***,
Como te he dicho por mensaje privado: esto se puede hacer con una consulta SQL que tenga la clásula ORDER BY:
Por ejemplo, en tu caso sería algo:
Sería mucho más sencillo si tienes un campo que sea fecha/hora, de este modo no tendrías que estar guardando los datos en forma seperada. Con un simple ORDER BY, el motor se encargaría de ordenarlos ascendentemente tanto por fecha y hora. Si tienes problemas con la consulta SQL y/o no entiendes hazlo saber en este hilo. Saludos, |
tabla
como seria la tablita en sql?
no entiendo mucho gracias |
Hola
Hay que tener en cuenta varias cosas. 1-La tabla Esta pertenece a la base de datos, es la que contiene los datos 2-La consulta. Lo que se hace con sql, osea se pide informacion (consultas), se añaden items, etc, a las tablas. Lo que se te dio fue la manera de CONSULTAR por medio de SQL a una tabla, NO organizar la Tabla. Saludos |
Cita:
Dices que tienes una base de datos, por tanto intuyo que tienes una tabla. Partamos de algo fundamental: ¿Podrías decirnos que tanto sabes sobre bases de datos? ¿Que motor usas? ¿Que componentes empleas para acceder a la base de datos? Cuando más nos puedas decir al respecto más te podremos ayudar. Saludos, |
entiendo algo de bases de datos
lo que hice fue armar un formulario poberle un componente table mas un data source base de datos elegi dbase IV y tengo la table mostrada en un db grid y necesito que en el db grid me salga ordenada por fecha y dentro de ese orden tambien por hora.. disculpen si no me expreso bien.. gracias por ayudarme |
OK. Ahora entiendo. Bueno... si puedes emplear algo más "moderno" sería mejor, dBase como que está un tanto obsoleto.
Como tienes un TTable en vez del TQuery, puedes hacer uso de la propiedad IndexName, IndexFieldNames. Con estas propiedades puedes alterar el índice para la base de datos y obtener los datos ordenados. Siempre y cuando tengas un índice para el campo fecha y hora podrás realizar lo que deseas. El mayor problema que tienes es que guardas la fecha y la hora por separado. Va a ser necesario tenerlos en uno sólo (es decir campo fecha/hora) para conseguir ordenarlos por fecha y hora. Si en vez de emplear el TTable usaras un TQuery es posible lanzar las consultas SQL como indicamos anteriormente. Sugiero que leas la ayuda sobre las propiedades que te mencioné, sobre los componentes. Además no está demás una leida a material tanto teórico como práctico sobre Delphi y bases de datos. En el FTP y el wiki del club hay material. Saludos, |
andres, vamos a pillar al toro por los cuernos ;).
En la paleta BDE de delphi, haz clic sobre el componente TQuery y ponlo en tu ventana. En la propiedad DatabaseName, elige donde tienes tu base de datos. Si has creado un "alias" en el Database Desktop, entonces usa la propiedad AliasName y elígelo de la lista (si esto te suena a chino, entonces usa la propiedad DatabaseName). Ahora busca la propiedad SQL y haz clic en los 3 puntitos, escribe esto en esa ventana: Nota: tabla_atencion_pacientes tienes que sustituirlo por el nombre real de tu tabla, lo puedes deducir del TTable que tienes, en su propiedad Tablename vendrá algo así: "Pacientes.DB" (la extensión .DB no hace falta que la pongas), por tanto tu tabla se llama pacientes. Pon en esa ventana un TDatasource desde la pestaña "Data Access" se llamará Datasource1, en su propiedad Dataset, elige Query1. En la propiedad Datasource del dbgrid elige el Datasource1 (con esto estamos ligando la consulta al grid para ver los resultados). En el FormCreate de esa ventana, escribe:
Listo !! Cuando ejecutes tu programa, ya tendrás ordenado por fecha, después por hora y después por Nombre alfabético de los pacientes. ¿Lo ves ahora más fácil? No era para tanto ¿verdad? Bien, pues ahora te toca a tí buscar un buen manual de SQL (que los hay a patadas en internet) y mirar cómo puedes ordenar descendentemente los datos, agrupar información para sacar totales, etc. Saludos Saludos. |
muchisimas gracias a todos los que me bancaron he solucionado el problema del orden por fecha y por hora
|
hola
tengo un problema, cuando imprimo un report en vez de salirme la primer hoja impresa, me sale la primera en blanco y la segunda con la impresion yo pongo form x .quickrep1.peview y cuando me tira la vista preliminar del fornmulario , mando a imprimir hay alguna otra forma de imprimir un formulario? gracias |
Puedes obviar la presentación preliminar y enviar a imprimir, pero el resultado va a ser el mismo.
mira con detalle (si lo has tocado o no usas un A4) el tamaño de página, los márgenes y posiblemente una banda de detalle muy grande. Saludos |
buenaas
nesecito saber como puedo depurar desde una fecha hasta otra los datos de una tabla |
Cita:
¿Podrías ser más descriptivo? ¿Que componentes estás empleado? ¿Sigues con los Tables o estás haciendo uso de Querys.? Saludos, |
perdon.
necesito poner dos fechas y que todos los datos que esten entre esas fechas se borren de la tabla . yo tengo una tabla a la que le cargo turnos y para que no jodan los turnos de los dias pasados a la fecha queria saber como puedo hacer para borrarlos me explico. saludos |
Hola
Y eso no se hace con un asentencia sql con Betwin (o lo que es lo mismo entre en spanglish) o poniendo los rangos >= y <= . No se digo yo. Saludos |
Como bien lo ha dicho Carlos,
Si se hace mediante SQL, y por tanto de Querys, hay dos opciones: 1. Poner en la parte where una condición del tipo (fecha >= fechaIni) and (Fecha <= fechaFin) 2. Poner en la parte where la instrucción bettwen. Es un tema ya muy ampliamente tratado y si buscas en los foros hallarás muchos hilos en donde hay ejemplos. Prueba con palabras claves como rango fecha, bettwen. Si se emplea un Table no queda otra opción que emplear Filtro y poner una condición como la señalada en el punto 1. Nuevamente debo mencionar, sin ofender, que el tema de filtros también fue tratado. Por algo he dicho que mencionaras que componentes usas. Dependiendo de cual uses se realiza el trabajo. Saludos, Saludos |
yo lo que quiero es eliminar los datos que cargue en la base de datos, entre una fecha y otra ,no se si me explico.
|
Cita:
No es por ser pedante, pero si supieramos, si nos contases de que modo estás trabajando sería más fácil para ti entender nuestros ejemplos. Por algo te estoy pidiendo que nos comentes sonre que componentes empleas. Para mi es mucho más fácil, directo, económico, y fiable lanzar una instrucción SQL como esta:
O algo similar. Saludos, |
buenas tardes....
tengo un problema en el programa que arme con la ayuda de ustedes, no puedo hacer que me filtre x medico y a la vez por dia. la sentencia que puse es la siguiente: procedure TIngresoturnos.SpeedButton3Click(Sender: TObject); begin query1.active:=true; query1.filter:= ComboBox1.TEXT + ' ='+ quotedstr(DBLookupComboBox1.TEXT + '*'); query1.filtered:=true; dbgrid1.visible:=false; dbgrid2.visible:=true; QUERY1.filter:= 'FECHA=' + quotedstr(FORMATDATeTIME('dd/mm/yyyy',datetimepicker2.date)); end; tendra alguna solucion gracias |
La franja horaria es GMT +2. Ahora son las 20:30:28. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi