2014-11-04 15 views
0


我正在創建一個STOCK IN系統。
我知道如何在表格中插入新記錄。
但現在,我需要通過檢索先前值和添加當前值來執行ADDITION。
E.G:
ROWID |股票ID |股票金額| STOCK TOTAL
01 | A0001 | 20 | 20
02 | B0002 | 50 | 50
03 | A0001 | 40 | 60 < < < {假設這是新輸入值「40」,我需要獲得「60」時,我按STOCKIN到數據庫中}
手段 20 + 40 = 60如何檢索最後輸入的結果並在該商店之後執行減法到SQLite中Android

以下是代碼:
將對DBAdapter類

 public long stockIn(String indate, String proid, String unit, String total, String rack){ 

      ContentValues initialValues = new ContentValues(); 
      initialValues.put(KEY_STOCK_IN_DATE, indate); 
      initialValues.put(KEY_PRO_CODE, proid); 
      initialValues.put(KEY_STOCK_IN_AMT, unit); 
      initialValues.put(KEY_STOCK_TOTAL, total); 
      initialValues.put(KEY_STOCK_RACK,rack);  

      return DB.insert(DATABASE_TRANS_TABLE, null, initialValues); 

     } 

STOCK在類

public void STOCKIN() { 

    stockinBttn.setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View v) { 

      String dateInput, IDInput, unitInput, totalInput, rackInput; 

      dateInput = dateLbl.getText().toString().trim(); 
      IDInput = proidTxt.getText().toString().trim(); 
      unitInput = prounitTxt.getText().toString().trim(); 
      totalInput = prounitTxt.getText().toString().trim(); 
      rackInput = prorackTxt.getText().toString().trim(); 

       DB.open(); 
       long id = DB.stockIn(userInput, dateInput, IDInput, unitInput, rackInput); 
       DB.close(); 


     }}); 


     } 


您的guyz建議和幫助非常感謝。 問候

+0

不清楚自己想做什麼樣的數學你問,你是說內sql調用?我有一個建議是,你在java代碼中使用整數而不是字符串。 – 2014-11-04 14:35:57

+0

是的。我需要在SQLITE中執行計算。類似最新金額+「以前的金額」=總金額。 – user2912588 2014-11-04 14:59:33

回答

0

讀表中的所有先前交易的sum,並將其添加到當前量:

public long stockIn(String indate, String proid, long unit, String rack) { 
    long previousTotal = DatabaseUtils.longForQuery(DB, 
      "SELECT TOTAL("+KEY_STOCK_TOTAL+")"+ 
      " FROM "+DATABASE_TRANS_TABLE+ 
      " WHERE "+KEY_PRO_CODE+" = ?", 
      new String[] { proid }); 
    ContentValues cv = new ContentValues(); 
    cv.put(KEY_STOCK_IN_DATE, indate); 
    cv.put(KEY_PRO_CODE,  proid); 
    cv.put(KEY_STOCK_IN_AMT, unit); 
    cv.put(KEY_STOCK_TOTAL, previousTotal + unit); 
    cv.put(KEY_STOCK_RACK, rack); 
    return DB.insert(DATABASE_TRANS_TABLE, null, cv); 
} 
+0

謝謝。它適用於總計。如果我想獲得最新的記錄和添加當前記錄。我如何應用(MAX)/ DESC LIMIT 1? – user2912588 2014-11-05 12:50:19

+0

只需使用不同的查詢。 – 2014-11-05 13:47:33

相關問題