【问题标题】:How to retrieve sum of a column of data from the database?如何从数据库中检索一列数据的总和?
【发布时间】:2014-03-05 19:58:26
【问题描述】:

如何从数据库中检索一列数据的总和并从数据库中的另一列数据中减去它?我想这样做,从 Total_Sales 列中获取总和,从 Total_Value 列中获取总和并执行减法运算,即从 Total_Sales 的值中减去 Total_Value 的值(Total_Sales - Total_Value)。目前这是我的一段代码。

calculateButton.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent ae)
    {

    try
    {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn = DriverManager.getConnection("Jdbc:Odbc:TomsJava");

        java.util.Date fromDate=(java.util.Date)fromtextField.getValue();
        java.util.Date toDate=(java.util.Date)totextField.getValue();

        PreparedStatement ps = conn.prepareStatement("select SUM(Total_Sales - Total_Value) As Result from DailyAnalysis where 'Date1 BETWEEN #fromDate# AND #toDate#' ");
        ResultSet rs = ps.executeQuery();
        while(rs.next())
        {

            String itemName = rs.getString("Item");
            Double totalValue = rs.getDouble("Total_Value");
            Double totalSales = rs.getDouble("Total_Sales");

            Double Result = rs.getDouble(1);

        }

    }
    catch(SQLException s)
    {
        System.out.println(s);
    }
    catch(ClassNotFoundException z)
    {
        System.out.println(z);
    }
    catch(NumberFormatException n)
    {
        System.out.println(n);
    }
    }
    });

编辑 我正在尝试检索两个日期之间的列。我想将 Total_Value 的检索值的总和设置为 Total Expense 文本字段,并将 Total_Sales 列的总和设置为 Total Income 文本字段。然后据此计算盈亏。

【问题讨论】:

  • 你最喜欢的搜索引擎连“sql”和“sum”都没有搜索到?
  • 我们在这里处理的是哪个数据库?

标签: java database swing


【解决方案1】:
Select Sum(Total_Sales) as Sales_Total, Sum(Total_Value) as Value_Total, Sum(Total_Sales - Total_Value) as Result
From DailyAnalysis

将查询和代码更改为此

     Double result = null;
     Double totalValue = null;
     Double totalSales = null;
      ...

      PreparedStatement ps = conn.prepareStatement("select Sum(Total_Sales) as Sales_Total, Sum(Total_Value) as Value_Total, SUM(Total_Sales - Total_Value) As Result from DailyAnalysis where Date1 BETWEEN ? AND ? ");
            ps.setDate(1,fromDate)
            ps.setDate(2,toDate)
            ResultSet rs = ps.executeQuery();

            //Query should only return one or zero result hence the if statement
            if (rs.next())
            {  
               //Define variables at the top, if you want to have access outside the if block scope
               totalValue = rs.getDouble("Value_Total");
               totalSales = rs.getDouble("Sales_Total");
               result = rs.getDouble("Result");
            }

【讨论】:

  • 如果我这样做,我该如何检索该值?
  • 双重结果 = rs.getDouble(1);使用它仍然给我同样的错误
  • @Toms 我相信我已经解决了您的问题。您是否需要更多信息,或者您是否满意?
  • 完美的男人......我得到了我想要的方式......非常感谢! ^_^ 现在,如果我设置打印按钮的编码,我的项目就完成了。早上 7.30 收到我的提交,现在已经是 2.30。
猜你喜欢
  • 2013-11-24
  • 2012-05-03
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 2021-10-26
相关资源
最近更新 更多