2015-11-17 93 views
0

我试着从表中演算从表列股票代码的最后ID列代码中插入,这就是我的要求至极不起作用插入最后一个ID

String sql1="INSERT INTO calcul (idproduit,inventaire,consomation,date,quantite,designation,dateper,ppa,tr,net,code) " 
      + "VALUES ('"+codeP+"',"+newQuant+","+0+",'"+datestock+"',"+newQuant+",'"+designation+"','"+datePer+"',"+PPA+","+TR+","+NET+",SELECT MAX(code) from stock);"; 

     stmt.executeUpdate(sql1); 
+0

任何错误,堆栈跟踪?请附上。 – Raf

+0

请查看两张表的表格定义。您是否在为“股票”表格添加了值之后尝试这样做?还是独立?如果在为股票表添加值之后执行此操作,您是否使用与此语句相同的连接对象?请添加相关代码。 – RealSkeptic

+0

你为什么要这么做呢?你试图解决的根本问题是什么?如果'code'值是用序列生成的,则使用'lastval()'函数。 –

回答

0

你需要修改您的查询以包含子查询(替换值)。我不想在这里复制整个计算器中的答案,但是,我想给你参考一些已经得到答案的问题,参见herehere

在你的,我会写如下查询:

“INSERT INTO演算 (idproduit,inventaire,consomation,日期,quantite,指定,dateper,PPA,TR,净,代码) SELECT ' ”+ CODEP +“',” + newQuant + “” 0 +”, ' “+ datestock +”', “+ newQuant +”, ' “+指定+”', ' “+ datePer +”', “+ PPA +”, “+ TR +”, “+ NET +”,MAX(代码) 库存;

您的查询是有点乱,所以我希望把它放在更通用的形式下面

INSERT INTO calcul (col1, col2, ....,coln) SELECT col1, col2, ..., MAX(code) FROM stock;