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