![]() |
Filtros
Hola!
Estoy tratando de filtrar los datos de una adoquery y no me deja poner los paréntesis donde los necesito. El filtro debe ser más o menos así: 'fechaA < '+ fecha + ' and (fechaB = null or fechaB > ' +fecha); fecha es una variable de tipo string donde voy almacenando una fecha. El caso es que no admite los paréntesis ahí y si lo pongo sin paréntesis sí funciona, pero claro, no hace lo que necesito que haga. Ya probé cambiando el SQL, pero tengo que cerrar y abrir la query cada vez y ese filtrado tengo que hacerlo dentro de un ciclo, por lo que se demora enormemente. El problema es que tengo que filtrar para cada día del mes e ir contando cuántos records cumplen la condición. fechaA es la fecha de Alta y fechaB la fecha de Baja de los trabajadores. Lo que debe hacer es filtro es escoger solo los que estaban trabajando ese día. Explico todo esto porque quizás hay otra forma de hacerlo que no sea con filtros. saludos |
Hola:
Yo no soy muy entendido en cuanto a ADOQuery, pero me parece que el codigo que escribiste: Cita:
Código:
'fechaA < '+ fecha + ' and (fechaB = null or fechaB > ' +fecha+ ')'; |
Sí es cierto que tenía un error de sintaxis, pero ese no es el problema. Eso fue a la hora de transcribirlo para acá.
:confused: |
Hola, el ado no lo manejo, pero ya probaste realizar un filtro a la tabla?, no se que base de datos usas pero di es Paradox o dbase, los campos que intervienen en la busqueda tendran que estar indexados, bueno lo que te digo es que pruebes utilizar SetRangeStar(), SetRangeEnd(), y ApplyRange, que creo que va ideal para tu caso. delphi tiene buena ayuda para eso.
ej: with table1 do begin Fields[0].asdatetime:= pones la fecha de alta setRangeend; Fields[0].Asdatetime:= fecha de baja applyrange; end; tambien se podria pasarlo a string, no sé .. suerte. Bird15. - |
Veamos, estas en una Query, no? pues porque no pones esas condiciones en el where de la misma?
Otra cosa, tambien podria ser que no te funcionara porque las fechas van entre comilladas Código:
'fechaA < '+ QuotedStr(fecha) + ' and (fechaB = null or fechaB > ' + QuotedStr(fecha) + ')'; Espero te sirva |
La franja horaria es GMT +2. Ahora son las 23:40:04. |
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