【问题标题】:How to retrieve the "total" variable representing a sum in a resultset如何检索表示结果集中总和的“总”变量
【发布时间】:2020-04-18 17:42:24
【问题描述】:

我正在制作一个 JavaFX/SQL 程序来表示客户和客户支出之间的数据。我正在尝试计算特定客户端的总客户端支出并在 Javafx 文本区域中输出。

My Transactions 表包含 Date、Description、Amount、Clientname 和 Transaction_ID,其中 Transaction_ID 是主键。

这是我的方法 "calculate_client_spending" "Result_transaction" 是我的全局 TextArea 变量:

public void calculate_client_spending(){
        try {
        ConnectionClass Databaseloader = new ConnectionClass();
        Databaseloader.getConnection();
       String sql = "SELECT t.Amount, t.Clientname\n" +
      "  FROM Transactions AS t\n" +
      "  JOIN (SELECT Clientname, SUM(Amount) AS total\n" +
      "          FROM Transactions\n" +
       "        WHERE Clientname = 'Gaylord420') AS s ON t.Clientname = 
      s.Clientname";
      ResultSet rs =  Databaseloader.executeSQLRequestCommand(sql);

          rs.next();
          Results_trasactions.setText("");
          Results_trasactions.setText("The total profits today are: " + 
      rs.getInt("total"));
        }
        }
     catch (SQLException e) {
        System.err.println("Got an exception! ");
        System.err.println(e.getMessage());
    }
    }

方法方法返回: “出现异常!未找到‘总计’列。”

似乎认为“总计”是一列,但它是别名,而不是我的“交易”表中的属性。总数应该是最终查询的结果。如果有帮助,我的查询是根据这篇文章构建的:

How to take sum of column with same id in SQL?

任何帮助都会很棒。被这个问题困了一个月了。

【问题讨论】:

  • 为什么要自己加入Transactions表?

标签: java mysql sql jdbc alias


【解决方案1】:

您没有在 select 列表中包含 total 列,因此在您的代码中仅返回 2 列:AmountClientname
改成这样:

String sql = "SELECT t.Amount, t.Clientname, s.total\n" +
...........................................................

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2010-10-18
    • 2021-03-09
    • 1970-01-01
    相关资源
    最近更新 更多