0

我有一个查询要将现金存入帐户。在此我们提供密码作为验证和存款金额。我使用atm_transaction_details_tb表进行存款和提款(我使用类似类型的查询来提款。存款查询->

selectQuery = "update atm_transaction_details_tb set amount=amount+?, dot=?,
               deposit=? where pin=? ";

撤回查询->

 selectQuery = "update atm_transaction_details_tb set amount=amount+?, dot=?,
               deposit=? where pin=? ";

查询是正确的,但在执行查询后,我看到提款和存款在数据库中的同一行,我希望它在单独的行中。类似于数据库的表如下所示 -

I am getting this in database-
Amount  DOT        Withdraw Deposit PIN
6000    12-Sep-2013 500 500 5555

I want this in database - 
Amount  DOT        Withdraw Deposit PIN
5500    12-Sep-2013     500 5555
5000    12-Sep-2013 500     5555

我希望查询将数据存储在不同的行中。可能需要修改查询以进行更改。请帮助我,因为我是新手。提前致谢。

4

3 回答 3

0

使用插入查询而不是更新。因为更新会根据条件改变同一行/行的值。

于 2013-09-19T07:04:21.333 回答
0
selectQuery = "INSERT INTO atm_transaction_details_tb (amount, dot, deposit, pin) 
VALUES(5500,'2013-09-12',500,5555)"

或者

INSERT INTO atm_transaction_details_tb (amount, dot, deposit, pin) 
SELECT TOP 1 
    amount + 500
    , '2013-09-12'
    , 500
    , pin FROM atm_transaction_details 
WHERE pin=5555 
ORDER BY dot DESC

TOP 1 和 ORDER BY 很重要。否则,您将为一个事务插入多行。如果一天有多个交易,还需要一些标识列来查找最后一笔交易。

另外,我不是您的数据库设计的忠实粉丝。您为每笔交易存储了帐户的“余额”。但是您可以更好地进行计算余额的查询,或者将余额存储在不同的表中。

于 2013-09-19T06:53:35.727 回答
0

第一次使用正确的更新查询

UPDATE 
  atm_transaction_details_tb 
SET
  amount = amount + 50,
  dot = '2013-09-12',
  deposit = 50 
WHERE pin = 15

在上面的查询之后,运行插入查询,使用上面的 pin id 复制上面的查询记录,而不是再次更新查询,只插入如下。

INSERT INTO `atm_transaction_details_tb` (`pin`, `amount`, `dot`, `deposit`) 
  (SELECT 
    `pin`,
    `amount`,
    `dot`,
    `deposit` 
  FROM
    atm_transaction_details_tb 
  WHERE pin = 15) ;
于 2013-09-19T09:23:36.567 回答