2015-12-16 220 views
0

我試圖從基於第一個查詢的單獨表中選擇一個數據。根據第一個表的列中的數據從不同表中選擇列

Appointment Table

Treatment Table

我有一個文本框,用戶可以在他們的patientID進入並按下搜索按鈕時,應用程序將查詢病人的ID號的數據庫並顯示處理名稱下方的名稱,應用程序也將根據所執行的治療方法搜索相關費用,並將其顯示在右側。 我只能在應用程序上顯示一個查詢,我不知道爲什麼它不能運行這兩個查詢。

private void button_SearchActionPerformed(java.awt.event.ActionEvent evt) {            
       // when this is clicked total costs loads 
       //by adding all of the costs column 
    try{ 
    String str = field_PatientNumber.getText(); 
    int f = Integer.parseInt(str); 
    String sql = "SELECT TreatmentName FROM Appointment WHERE PatientID='"+ f +"'"; 
    String sql2 = "SELECT Cost FROM Treatment WHERE Name IN (SELECT TreatmentName FROM Appointment WHERE PatientID='"+ f +"')"; 
    //String treatmentName = rs.getString("TreatmentName"); 

    //System.out.println(treatmentName); 
    //String sql2 = "SELECT Cost FROM Treatment where Name='"+ treatmentName +"'"; 
    rs = stmt.executeQuery(sql); 
    rs2 = stmt.executeQuery(sql2); 
    stmt = con.prepareStatement(sql);  
    stmt = con.prepareStatement(sql2); 
    jTableName.setModel(DbUtils.resultSetToTableModel(rs)); 
    jTableCost.setModel(DbUtils.resultSetToTableModel(rs2)); 

    double s=0; 
     for(int i=0;i<jTableCost.getRowCount();i++){ 
     String d= jTableCost.getValueAt(i, 0).toString(); 
     double d1=Double.parseDouble(d); 
     s+=d1; 
     } 

     String totalCost = String.valueOf(s); 
     field_TotalCosts.setText(totalCost); 

    } 
    catch(Exception e){ 
    JOptionPane.showMessageDialog(null, e); 
    } 
} 
+0

這裏是應用程序的GUI(我不能發佈超過2個鏈接) https://gyazo.com/f5fb64ef1843cd79f1858e829674b2fe – heodo

回答

0

您重寫了一個變量。

stmt = con.prepareStatement(sql);  
stmt = con.prepareStatement(sql2); 

http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html顯示了一個例子,但這種情況在他們separated-報價:

... 
updateSales = con.prepareStatement(updateString); 
updateTotal = con.prepareStatement(updateStatement); 

其實這仔細一看一次,你實際上已經在製作之前,您執行的語句。

相關問題