SQL查询,对日期之前的列求和,并显示该日期之后的所有条目

SQL查询,对日期之前的列求和,并显示该日期之后的所有条目,sql,Sql,我有一张桌子,上面有对顾客的限制 我正试图获得下图所示的输出,即在特定日期前批准的总金额 我尝试下面的代码,但这总和的总制裁金额 select gam.id, sum(SANCTION_AMOUNT) from gam join (select ID,ACCOUNT_OPEN_DATE from gam where ACCOUNT_OPEN_DATE between'01-04-2019' and '30-04-2019' AND SCHEME_CODE IN ('SB','CCKLY'))

我有一张桌子,上面有对顾客的限制

我正试图获得下图所示的输出,即在特定日期前批准的总金额

我尝试下面的代码,但这总和的总制裁金额

select gam.id, sum(SANCTION_AMOUNT) from gam 
join (select ID,ACCOUNT_OPEN_DATE from gam where ACCOUNT_OPEN_DATE between'01-04-2019' and '30-04-2019' AND SCHEME_CODE IN  ('SB','CCKLY')) ) action
 on( gam.ACCOUNT_OPEN_DATE <=action.ACCOUNT_OPEN_DATE and gam.id=action.cust_id) group by gam.id; 

不确定您的数据库是MySQL还是Oracle,但下面的脚本在大多数数据库中都是可行的。只需相应地调整表名和列名

你可以检查MySQL


在Oracle中,这可以是一种方式:

select id, sanction_amount, scheme_code, account_open_date,
       sum(sanction_amount) over (partition BY ID order by account_open_date) as total_sanction_amount
from gam
order by account_open_date

MySQL或Oracle?请仅标记相关的RDBMS@erdeepak . . . 我删除了不一致的数据库标记。请仅使用您真正使用的数据库进行标记。这是标准的SQL,也适用于较新版本的MySQL。
select id, sanction_amount, scheme_code, account_open_date,
       sum(sanction_amount) over (partition BY ID order by account_open_date) as total_sanction_amount
from gam
order by account_open_date