单位需要填报前十大客户,如下图
数据来源是数据库的数据,如下图:
那么如何能让SQL语言填写到指定位置,如下面的结果:
思路:在报表的每个格子里写SQL语句,where条件依次指定为1 2 3 4 5……
用到排位次SQL,如下:
select A.客户,A.编号,A.交易金额,count(*) as 名次 from [数据表$] A
inner join
(select 客户,编号,客户 from [数据表$]) B
on
(A.交易金额<B.交易金额 or (A.交易金额=B.交易金额 and A.编号<=B.编号))
上面排位次SQL中A与B的实有字段必须相同,即count前面的字段必须一样。
然后在这个排位次的SQL外面再套一层SQL,如下:
select C.客户
from
( 排位次SQL ) C
where C.名次=1
这样就取到位次为1得客户名称,依次类推,写第二名的,第三名的。如下图:
整体效果如下:
SQL语句写好了,就运行程序执行SQL查询,SQL就按照指定位置填写结果,如下图:
SQL是数据查询处理的优秀语言。