Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 21/03/12, 14:22:17
Avatar de egesr
egesr egesr no está en línea
Usuario novato en la web
Mensajes: 5
 
Fecha de registro: mar 2012
Mensajes: 5
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
sqlite query - Función Max

Hola,

Tengo un problema con una consulta a base de datos sqlite.

La query es muy sencilla:

SELECT MAX (INIT_DATE) INIT_DATE FROM TABLE;

Cuando ejecuto la query, y la tabla está vacía, me devuelve un registro, cuando en realidad debería devolver cero registros.

He intentado ejecutar la consulta de dos maneras distintas:

Código:
cursor = db.query(true, "TABLE", new String[] {"MAX(INIT_DATE) AS INIT_DATE"}, null, null, null, null, null, null);

cursor = db.rawQuery("SELECT MAX(INIT_DATE) AS INIT_DATE FROM TABLE", null);
Ninguna funciona, ambas me devuelven un registro.

¿Puede alguien ayudarme?

Muchas gracias
Responder Con Cita


  #2  
Viejo 21/03/12, 15:31:03
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
No se quien te ha dicho que el MAX no devuelve nada si no hay registros, porque la función MAX (y la MIN, y casi cualquier función de grupo, incluido COUNT que devuelve 0) si no hay registros devuelve NULL.
Responder Con Cita
  #3  
Viejo 21/03/12, 15:54:18
Avatar de egesr
egesr egesr no está en línea
Usuario novato en la web
Mensajes: 5
 
Fecha de registro: mar 2012
Mensajes: 5
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Hola,

Si me devolviera un cursor igual a NULL sería perfecto, pero el problema es que me devuele un objeto de tipo cursor distinto a nulo.

Si luego llamo al método getCount del cursor, me devuelve 1, cuando creo que debería devolverme cero.

Gracias
Responder Con Cita
  #4  
Viejo 21/03/12, 16:23:00
Avatar de egesr
egesr egesr no está en línea
Usuario novato en la web
Mensajes: 5
 
Fecha de registro: mar 2012
Mensajes: 5
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Ok, me diste la pista.

Efectivamente cuando se utiliza una función de grupo como MAX, el cursor tiene un registro. Lo que hay que hacer es utilizar la función isNull para ver si el campo es nulo o no.

Gracias
Responder Con Cita
  #5  
Viejo 21/03/12, 22:51:53
Avatar de tiotizo
tiotizo tiotizo no está en línea
Miembro del foro
Mensajes: 71
 
Fecha de registro: dic 2011
Mensajes: 71
Modelo de smartphone: LG Optimus Black
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por egesr Ver Mensaje
Ok, me diste la pista.

Efectivamente cuando se utiliza una función de grupo como MAX, el cursor tiene un registro. Lo que hay que hacer es utilizar la función isNull para ver si el campo es nulo o no.

Gracias

No se si llego tarde, para ayudarte, creo que si...

Pero bueno, queria comentar, que las funciones de grupo, tipo MAX, no se pueden mezclar con las que devuelven registros... por lo que recuerdo... Por lo menos en otros entornos de BBDD, como oracle...

en mysql.. no tengo ni idea si se puede. pero por logica no deberia.. porque una funcion de grupo devuelve 1 resultado, y el resto devuelve 1 o varios registros, por lo que es incompatible uno con lo otro.. no???

a lo mejor estoy ekivocado.. no se..?¿?!!!

Salu2
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 00:24:56 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007