2015-11-17 134 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;