Hola, quisiera que me ayuden tengo mi programa en Java usando sql, pero quisiera saber una forma de usar el concat sin tener que estar poniendo el nombre de los campos, además de que salga en una tabla
Mi programa:
public void init(ServletConfig conf)
throws ServletException {
super.init(conf);
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
Connection conexion = null; //Objeto para la conexión a la BD
Statement sentencia = null; //Objeto para la ejecutar una sentencia
ResultSet resultados = null;//Objeto para guardar los resultados
//Variables conexión
String cadenaConexion="jdbc:mysql://localhost:3306/kpis";
String usuario="root";
String clave="";
//La salida será una página HTML
res.setContentType("text/html");
PrintWriter out = res.getWriter();
try {
//Leemos el driver de mysql
Class.forName("com.mysql.jdbc.Driver");
//Nos conectamos a la BD local
conexion = DriverManager.getConnection (cadenaConexion,usuario,clave);
//Creamos una sentencia a partir de la conexión
sentencia=conexion.createStatement();
//Cogemos todos los datos de la asignaturas
resultados=sentencia.executeQuery("SELECT * FROM (SELECT fecha,"
+ " IFNULL( GROUP_CONCAT( IF( codigo = 'RED', nota, NULL ) ) , 0 ) AS RED,"
+ " IFNULL( GROUP_CONCAT( IF( codigo = 'COBPOB', nota, NULL ) ) , 0 ) AS COBPOB,"
+ " IFNULL( GROUP_CONCAT( IF( codigo = 'COBGEO', nota, NULL ) ) , 0 ) AS COBGEO,"
+ " IFNULL( GROUP_CONCAT( IF( codigo = 'QB', nota, NULL ) ) , 0 ) AS QB,"
+ " IFNULL( GROUP_CONCAT( IF( codigo = 'QS', nota, NULL ) ) , 0 ) AS QS,"
+ " IFNULL( GROUP_CONCAT( IF( codigo = 'ATCALL', nota, NULL ) ) , 0 ) AS ATCALL,"
+ " IFNULL( GROUP_CONCAT( IF( codigo = 'ATPRES', nota, NULL ) ) , 0 ) AS ATPRES "
+ " FROM kpi GROUP BY fecha) AS kpi1");
//Escribimos la cabecera de la página
out.println("<html>\n <body>\n <h1>ATRIBUTOS</h1>");
//Mostramos las distintas asignaturas
while(resultados.next()) {
out.println(resultados.getString("FECHA")+" "+resultados.getString("RED")+" "+resultados.getString("COBPOB")+" "+resultados.getString("COBGEO")+" "+resultados.getString("QB")+" "+resultados.getString("QS")+" "+resultados.getString("ATCALL")+" "+resultados.getString("ATPRES"));
}//Fin while
resultados.close();
sentencia.close();
conexion.close();
//Escribimos el final de la página
out.println("</body>\n </html>");
}
catch (ClassNotFoundException e1) {
//Error si no puedo leer el driver de Oracle
out.println("ERROR:No encuentro el driver de la BD: "+
e1.getMessage());
}
catch (SQLException e2) {
//Error SQL: login/passwd mal
out.println("ERROR:Fallo en SQL: "+e2.getMessage());
}
finally {
//Finalmente desconecto de la BD
try {
if (conexion!=null)
conexion.close();
} catch (SQLException e3) {
out.println("ERROR:Fallo al desconectar de la BD: "+
e3.getMessage());
}
}
}
}
Agradecería su ayuda!!! =D