2016-06-06 2 views
1

Ich habe eine Tischteilnahme in welchen Spalten sind ID, Name, Datum, Status.Hier was ist das mein Problem ist, wenn ich zwei Daten (Startdatum und Enddatum) auswählen in meiner html Seite möchte ich einen Anwesenheitsbericht eines Studenten zwischen dem Bereich von Daten mit Namen auch keine von gegenwärtigen Tagen auch erzeugen. Wie man Abfrage schreibt, um Namen des Studenten und Zählung der gegenwärtigen Tage des bestimmten Studenten zu wählen. Für alle Hilfe danke im Voraus.Wie schreibe ich Abfrage für die Zählung einer Spalte in jdbc

Ich schrieb Abfrage wie unten.

String sql = "select student_name,count(status) from attendance where attendance.date>=? and attendance.date<=? and attendance.status=?"; 


try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection(
       "jdbc:mysql://localhost:3306/test_schema", "root", "root"); 
     String sql = "select student_name from attendance where attendance.date>=? and attendance.date<=? and attendance.status=?"; 
     PreparedStatement pstmt = con.prepareStatement(sql); 
     //pstmt.setString(1, "Present"); 
     pstmt.setString(1, stDate); 
     pstmt.setString(2, enDate); 
     pstmt.setString(3, "Present"); 

     rs = pstmt.executeQuery(); 
     while (rs.next()) { 
      java.sql.ResultSetMetaData rsmd=rs.getMetaData(); 
      int colCount = rsmd.getColumnCount(); 
      System.out.println("colCount :" + colCount); 


      System.out.println("count>>"+colCount); 
      StudentMark ge = new StudentMark(); 

      ge.setStudentName(rs.getString(1)); 

      stList.add(ge); 

     } 

     out.print(stList); 
     out.close(); 


    } catch (Exception e) { 
     System.err.println(e.getMessage()); 
    } 
+0

Was ist das Problem mit Ihrer Abfrage? – Jens

+0

Ich habe den Status meiner Tabelle nicht richtig berechnet. – dnvsp

+0

Bitte Beispieldaten hinzufügen – Jens

Antwort

1

können Sie die ResultSetMetaData verwenden Sie die Spaltenanzahl für jedes select Abfrage Ergebnis zu erhalten.

ResultSet rs= ... //Statement's result. 
ResultSetMetaData rsmd= rs.getMetaData(); 

int colCount = rsmd.getColumnCount(); 
+0

Von oben Code bekomme ich colCount num ist nur 1, aber ich habe zwei Daten mit Status vorhanden. – dnvsp

+0

Ich habe meinen Code bearbeitet. – dnvsp

Verwandte Themen