2017-10-28 174 views
-3

我想在列中插入Somme_versee(列表Versement中的列)的SUM。 这是我的代码的一部分:滥用聚合函数SUM()

statement.executeUpdate("INSERT INTO Versement (Nom , Prenom, Date , Somme_versee,Prix_du_logement, Nom_du_projet) VALUES('" + nom.getText() +"','" +prenom.getText() +"','" +date.getText() + "'," + verse.getText() + ", " + "(SELECT Prix_du_logement FROM Client WHERE Nom='"+ nom.getText() +"' AND Prenom='"+ prenom.getText() + "')," + " (SELECT Nom_du_projet FROM Client WHERE Nom='" + nom.getText()+ "' AND Prenom='" +prenom.getText() + "'))"); 
statement.executeUpdate("UPDATE Versement SET Versement_total= SUM(Somme_versee) "); 

在执行我得到这个错误:misuse of aggregate function SUM()

+0

设计看起来不正确。一列持有X和另一持有金额(X)的列如何处于同一水平?总和产生一个单一的值。 – Vasan

+0

我该怎么办? –

+0

我的目标是太添加新的Somme_versee(金额支付),然后计算所有Somme_versee(金额支付)的总和。 –

回答

0

在同一个表你不应该这样做。当表格获得更多记录时,情况会变得更糟。但你似乎想要的是:

UPDATE Versement SET Versement_total = (SELECT SUM(Somme_versee) FROM Versement)