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

Respuesta
 
Herramientas
  #1  
Viejo 21/03/12, 14:22:17
Array

[xs_avatar]
egesr egesr no está en línea
Usuario novato en la web
 
Fecha de registro: mar 2012
Mensajes: 5
Tu operador: Movistar

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
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
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
Array

[xs_avatar]
egesr egesr no está en línea
Usuario novato en la web
 
Fecha de registro: mar 2012
Mensajes: 5
Tu operador: Movistar

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
Array

[xs_avatar]
egesr egesr no está en línea
Usuario novato en la web
 
Fecha de registro: mar 2012
Mensajes: 5
Tu operador: Movistar

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
Array

[xs_avatar]
tiotizo tiotizo no está en línea
Miembro del foro
 
Fecha de registro: dic 2011
Mensajes: 71
Modelo de smartphone: LG Optimus Black
Tu operador: Orange
 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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 00:21:23 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /