erro al leer colummna de un resultset: Column not found

tricky22
17 de Abril del 2006
Hola!!Vereis... tengo un problema al leer de un resultset. Yo tengo el siguiente código:
tabla = instruccion.executeQuery("SELECT IDcliente,SUM(importe) FROM productos GROUP BY IDcliente");
while(tabla.next()){
listainforme.add(tabla.getString("IDcliente"));
listainforme.add(tabla.getString("importe"));
}
Donde tabla es la variable tipo resulset. Mi problema es que me da una excepcion: Column not found, cuando intenta leer la columna "importe". Supongo que es por lo de SUM( ) pero no se que poner entonces. He probado (por probar algo!) con tabla.getString("SUM(importe)") pero nada. Alguien me puede ayudar?!. Muchas gracias!
Un saludo,
Tricky

martin
17 de Abril del 2006
Hola Tricky... lo que está sucediendo es que tu segunda columna no se llama 'importe'.

Para accederla tenés 2 opciones. La primera (y la recomendada) es ponerle un nombre a tu segunda columna usando la clausula AS, de la sig forma:
tabla = instruccion.executeQuery("SELECT IDcliente,SUM(importe) AS sumaimporte FROM productos GROUP BY IDcliente");

Ojo: no podes llamar a esa columna "imorte" debido a que en la tabla ya existe una columna llamada importe.

La segunda forma que tenés es accederla pornumero de columna en vez de por nombre, cambiando tabla.getString("importe")) por tabla.getString(1)); (no recuerdo si va 1 o 2... es decir, si la primer columna es la numero 0, o si la primer columna es la numero 1... pero eso lo podes probar vos).

Y de paso te comento que algunas bases de datos suelen asignarle un numero a estas columnas sin nombre... por ejemplo lo que vos hiciste en Microsoft Access se llamaría SumOfImporte (o algo asi)... pero esto ni te lo recomiendo usar.

Te mando un saludo y suerte con lo tuyo-