SQL查询 自增序列

写SQL语句时候,特别是需要套用公式的时候,我们可能需要一些自增序列作为参数测试,然后通过公式生成想用的结果集;

如:

银行存款,  每期利息::f(n)=prin*(rate+0.001*n);  本金*(利率+0.001*期数)然后我们需要统计前20期的情况;

select 
	name as '姓名',
	money as '本金',
	term as '期数',
	money*(0.09+0.001*term) as '利息'
from
(
	select "王三" as name,5000 as money
)  as save
join
(
	select
		@tm:=@tm+1 as term -- 期数
	from tbl_student,(select @tm:=0) as t
	limit 20
)as tx

查询结果:

王三	5000	1	455
王三	5000	2	460
王三	5000	3	465
王三	5000	4	470
王三	5000	5	475
王三	5000	6	480
王三	5000	7	485
王三	5000	8	490
王三	5000	9	495
王三	5000	10	499.99999999999994
王三	5000	11	504.99999999999994
王三	5000	12	509.99999999999994
王三	5000	13	515
王三	5000	14	520
王三	5000	15	525
王三	5000	16	530
王三	5000	17	535
王三	5000	18	540
王三	5000	19	545
王三	5000	20	550

    若是要前20期利息和:我们就有根据了

select 
	姓名,
	本金,
	sum(利息) as 前20期利息和
from
(
	select 
		name as '姓名',
		money as '本金',
		term as '期数',
		money*(0.09+0.001*term) as '利息'
	from
	(
		select "王三" as name,5000 as money
	)  as save
	join
	(
		select
			@tm:=@tm+1 as term -- 期数
		from tbl_student,(select @tm:=0) as t
		limit 20
	)as tx
)as tbl

结果:

王三	5000	10050

 

你可能感兴趣的:(数据库学习笔记)