| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Sclavo Invitado
|
Publicado: Mie 23 Oct, 2002 3:55 pm Asunto: Dudas sobre una consulta SQL |
|
|
Partiendo de una base de datos Access con un conjunto de datos como el que sigue:
Indice |Nombre |Fecha |Hora
-------------------------------------------------------
1 |UNO |27/09/2002 |12:36:35
2 |DOS |27/09/2002 |12:36:30
3 |TRES |28/09/2002 |09:08:45
4 |CUATRO |21/10/2002 |10:01:51
5 |CINCO |21/10/2002 |15:13:57
6 |SEIS |01/08/2002 |17:15:31
7 |SIETE |27/09/2002 |13:04:51
8 |OCHO |27/09/2002 |13:04:54
--------------------------------------------------------
Necesito obtener una consulta de 600 en 600 registros ordenados por fecha y hora, aunque para el ejemplo lo hago de 3 en 3. La consulta que carga el siguiente grupo de registros no ejecuta la parte del OR.
SELECT * FROM Tabla1 WHERE(Tabla1.Fecha = :UltimaFecha AND "
"Tabla1.Hora > :UltimaHora) OR (Tabla1.Fecha > :UltimaFecha) ORDER BY Fecha, Hora".
Estoy desesperado..... |
|
| Volver arriba |
|
 |
Sclavo Invitado
|
Publicado: Mie 23 Oct, 2002 4:02 pm Asunto: |
|
|
A la instrucción SELECT olvidé añadirle TOP 3. La instrucción sería así
SELECT TOP 3 * FROM Tabla1 ....... |
|
| Volver arriba |
|
 |
Scooby Ens


Registrado: 25 Sep 2002Mensajes: 49Ubicación: Nunca Máis
|
Publicado: Lun 28 Oct, 2002 6:48 pm Asunto: |
|
|
//Se lee la hora y fecha en la que se encuentra el cursor.
TDateTime Hora = ADODataSet1->FieldByName("Hora")->AsDateTime;
TDateTime Fecha = ADODataSet1->FieldByName("Fecha")->AsDateTime;
ADODataSet1->Close();
//Se compone la cadena de consulta.
ADODataSet1->CommandText = "SELECT TOP 3 * FROM Tabla1 WHERE "
"((Fecha = #" + Fecha.DateString() +"#) AND (Hora > :hora) "
"OR (Fecha > #" + Fecha.DateString() + "#)) ORDER BY Fecha, Hora";
//Establecemos el parámetro para la hora y abrimos el DataSet.
ADODataSet1->Parameters->ParamByName("hora")->Value = Hora;
ADODataSet1->Open(); _________________ Iré a cualquier sitio siempre y cuando sea hacia delante.
Livingstone |
|
| Volver arriba |
|
 |
|