Hola a todos.
Tengo un problema con esta consulta:
Código SQL
[-]
SELECT [Fichas Socios].*, DateDiff("yyyy",[Nacido el],Date()) AS Edad, IIf(DateDiff("yyyy",[Nacido el],Date())<=14,"<14",IIf([Act?]="T","Técnico","Aficionado")) AS Categoría
FROM [Fichas Socios]
WHERE ((([Fichas Socios].[Act?]) In ("S","T")))
ORDER BY IIf(DateDiff("yyyy",[Nacido el],Date())<=14,"<14",IIf([Act?]="T","Técnico","Aficionado")), [Fichas Socios].Apellidos;
Cuando la utilizo en Access 2002, el resultado es el esperado. Primero me devuelve todos los registros donde
Categoría = "<14", luego, todos los registros donde
Categoría = "Aficionado", y por último, todos los registros donde
Categoría = "Técnico", todos ellos ordenados por los Apellidos.
Sin embargo, cuando utilizo esta consulta con Delphi, me devuelve unos cuantos registros de la primera categoría, unos pocos de la segunda, luego algunos de la primera,... y termina devolviéndome todos los registros de la tercera categoría.
La tabla tiene algo más de 1000 registros. Esta consulta devuelve alrededor de 200. Utilizo Delphi 7, ADO Access 2002 y Windows XP.
Gracias por vuestra ayuda.