Ich denke, das ist nicht leicht zu verstehen, was ich Titel lesen muss, also werde ich besser erklären. Meine Datenbank ist wie:Wie bekomme ich die Spalte sortiert nach dem Durchschnitt eines Feldes aus einer Tabelle in SQL
Table1 Table2 Table3 und anderen Tabellen wie diese ...
Benutzer in Textfeld einen Wert wie 1
einfügen wird und ich werde sie nur den Namen zeigen, dass 1
enthält. Ich tue dies auf diese Weise:
ArrayList<String> found = new ArrayList<String>();
ArrayList<String> allTable = getAllTableInDB();
for(String table:allTable){
try {
ResultSet rs = stat.executeQuery("SELECT * FROM '"+table+"'");
while(rs.next()){
if(!found.contains(rs.getString("name")) && rs.getString("name").equals(WhatUserInserts))
found.add(rs.getString("name"));
}
} catch (SQLException ex) {
ex.printStackTrace();
Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
}
}
Was will ich jetzt zu tun ist, um die „besten“ dieser Namen Bestellung von durchschnittlich Spalte v gefunden zu berechnen
Zum einem Tisch weiß ich, dass ich es kann. Verwenden Sie etwas wie:
SELECT name FROM table GROUP BY name ORDER BY AVG(v) DESC
Wie kann ich das gleiche an dieser Grenze des Wertes einer Tabelle tun?
Ich hoffe, erkläre ich meine Frage auch
GELÖST auf diese Weise DANK Dan P
:
ArrayList<String> tables = getAllTableInDB();
String query = "SELECT * FROM (";
String union = " UNION ";
for(int i=0;i<tables.size();i++){
query+="SELECT * FROM '"+tables.get(i)+"' WHERE name LIKE '%"+find+"%'";
query = i==tables.size()-1?query:query+union;
}
query+=") GROUP BY nome ORDER BY AVG(venduti) DESC";
gute Frage .. – JackTurky