gpt4 book ai didi

java - 如何根据 Java Netbeans 中的项目类型减去两个表之间的数量?

转载 作者:行者123 更新时间:2023-12-01 18:24:26 25 4
gpt4 key购买 nike

您好,我有两个表格“购买”和“交货”,我想在另一个表格“库存”中显示剩余数量。下面是我从 STOCK 表中得到的输出和我所做的代码,但计算是错误的。谁能帮我这个? enter image description here

private void stock(){  

dbConection db = new dbConection();
Connection con=db.getConnection();
String sql = "Select delivery.pro_Name, delivery.pro_Code, (sum(purchase.pur_qty) - sum(delivery.Qty)) AS bal from delivery, purchase where purchase.productCode = delivery.pro_Code GROUP BY delivery.pro_Code ";
PreparedStatement pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
DefaultTableModel tm = (DefaultTableModel)stockTable.getModel();

tm.setRowCount(0);
while(rs.next()){

Object o[]={rs.getString("pro_Code"), rs.getString("pro_Name"), rs.getString("bal")};
tm.addRow(o);
}


}catch(Exception ex){
JOptionPane.showMessageDialog(null,ex);

}

最佳答案

首先,这只是一个SQL问题,Java只是用来查看结果的。上面的代码适用于 MS SQL Server,因为您没有提供 SQL 数据库的类型。

最终库存是从初始库存开始计算的。所以你必须有类似的东西:

initial_stock + purchase_qty - delivery_qty  = final_stock (group by ProductId)

现在,如果您将文章/产品作为 FIFO 存储在数据库中,这意味着您还暗示了此公式中的价格,因此 group by 也暗示了 Fifo_Price 。这也可能是基于相关表的更复杂的 SQL Select。

假设您不需要 FIFO,而只需要剩余数量库存,则选择语法将如下所示:

-- Supposing initial stock is stored in Product Table
Select pr.ProductID, pr.InitialStock, Sum(IsNull(pc.Quantity,0)) AS QuantityIn,
Sum(IsNull(dv.Quantity,0)) AS QuantityOut,
pr.InitialStock + sum(IsNull(pc.Quantity,0) - IsNull(dv.Quantity,0)) AS FinalStock
From Products pr
Left Join Purchase pc on pr.ProductID = pc.ProductID
Left Join Delivery dv on pr.ProductID = dv.ProductID
Group By pr.ProductID, pr.InitialStock

-- if you want to see only products that are implied in purchase and delivery tables, you must Inner Join all tables

编辑:我已删除其余答案,因为与问题无关。

编辑2:请看这张图片。我做了一个简单的测试,显示了我和你所做的结果:

Select statement

考虑到初始库存不为空,我没有强制替换为 0,但您也可以替换它,因此 st.qty 将是 IsNull(st.Qty, 0 )作为初始库存

关于java - 如何根据 Java Netbeans 中的项目类型减去两个表之间的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60250693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com