J'ai cette requête ci-dessous. Je l'ai vérifié dans ms access et ça marche bien. Mais quand je l'ajoute à mon programme, une "erreur de syntaxe dans la clause FROM." apparaît. Des suggestions sur la façon de résoudre ce problème?Erreur dans le "FROM CLAUSE"
String query ="TRANSFORM COUNT(a.present)\n" +
"SELECT e.ID,e.firstName,e.lastName,e.position,e.rate\n" +
"FROM employees e \n" +
"INNER JOIN attendance a \n" +
"ON e.ID = a.empID \n" +
"GROUP BY e.ID,e.firstName,e.lastName,e.position,e.rate \n" +
"PIVOT a.dateAttended";
Ceci est la méthode complète à laquelle appartient la requête. La méthode connectToDB est utilisée pour insérer le jeu de résultats dans un jtable. Les jtables peuvent-ils insérer des requêtes pivot?
private void attendanceView() throws ClassNotFoundException{
try{
String query ="TRANSFORM COUNT(a.present) " +
"SELECT e.ID,e.firstName,e.lastName,e.position,e.rate " +
"FROM employees e " +
"INNER JOIN attendance a " +
"ON e.ID = a.empID " +
"GROUP BY e.ID,e.firstName,e.lastName,e.position,e.rate " +
"PIVOT a.dateAttended";
Object[][] result = connectToDB(query);
System.out.print(result);
monthlyAttendanceTable.setModel(new javax.swing.table.DefaultTableModel(
result, new String [] {"Employee ID","First Name","Last Name", "Position", "Rate","",""}
)
{
Class[] types = new Class [] {
java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class,java.lang.Integer.class,java.lang.Integer.class,java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false, false, false, false,false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
}catch (ClassNotFoundException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
}
}
@Reimeus: \ Nn'est pas considéré comme un espace? –
J'ai ajouté une nouvelle ligne dans ma chaîne de requête pour faciliter la lecture de mon code. Je vais essayer votre suggestion. – rocky
Je ne connais pas ms-access, mais peut-être qu'il nécessite windows newlines ('\ r \ n')? Java traite '\ n' comme le caractère LF exclusivement; il ne l'étend jamais au concept de nouvelle ligne de l'OS. – yshavit