Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我希望查询将数据存储在数据库中的不同行中。_Sql_Oracle - Fatal编程技术网

Sql 我希望查询将数据存储在数据库中的不同行中。

Sql 我希望查询将数据存储在数据库中的不同行中。,sql,oracle,Sql,Oracle,我想把现金存入一个帐户。在此,我们提供pin作为验证和存款金额。我使用atm\u transaction\u details\u tb表进行存款和取款(我使用类似类型的查询进行取款)。 存款查询-> selectQuery = "update atm_transaction_details_tb set amount=amount+?, dot=?, deposit=? where pin=? "; 撤消查询-> selectQuery = "update at

我想把现金存入一个帐户。在此,我们提供pin作为验证和存款金额。我使用
atm\u transaction\u details\u 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
我希望查询将数据存储在不同的行中。可能需要修改查询以进行更改。请在这方面帮助我,因为我是新手。提前感谢

selectQuery = "INSERT INTO atm_transaction_details_tb (amount, dot, deposit, pin) 
VALUES(5500,'2013-09-12',500,5555)"

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


我也不太喜欢你的数据库设计。你有“平衡”为每笔交易存储的帐户的。但您可以更好地进行查询以计算余额,或将余额存储在不同的表中。

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

第一次使用更新查询,因为您正在使用右键

UPDATE 
  atm_transaction_details_tb 
SET
  amount = amount + 50,
  dot = '2013-09-12',
  deposit = 50 
WHERE pin = 15
完成上述查询后,运行insert查询,使用上述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) ;

如果您希望它位于不同的行中,您应该尝试插入。更新将编辑现有行。使用提交如何?-这将强制将第一个事务提交到数据库,然后第二个事务将生成新行。您希望插入而不是更新。这确实是一个新手问题。您应该开始阅读一些基础知识…@FlorinGhita这不是一个新手问题,因为你没有正确理解这个问题,所以你说它是新手。我想插入一行,如果数据库中存在pin码,它也会根据pin码更新金额字段。正确地检查表。我正在使用pin码进行查询,然后插入到数据库中,我能在你提供的上面做些什么?你的问题还说,失踪。
INSERT INTO `atm_transaction_details_tb` (`pin`, `amount`, `dot`, `deposit`) 
  (SELECT 
    `pin`,
    `amount`,
    `dot`,
    `deposit` 
  FROM
    atm_transaction_details_tb 
  WHERE pin = 15) ;