-
-
亿信小白 初学数据Lv2
发表于2020-12-1 10:40
悬赏1
已解决
楼主
第一张图是设置浮动表元,并按照降序排列,第二张图是排序结果
然后我设置取前十个数,结果变成升序排列,且没有取10条数据
有人遇到这种情况吗?应该怎么改?


然后我设置取前十个数,结果变成升序排列,且没有取10条数据


有人遇到这种情况吗?应该怎么改?
14个回答
xxxl 发表于 2020-12-1 14:18
统计周期不能直接浮动出来用户名称和数量吗,为什么还要给用户名称和数量加上浮动 ...
如果不加上就只显示一条数据

计算结果:

sql语句:
2020-12-01 14:27:17.530 开始计算报表:B75081(内存情况:FREE=1.1G TOTAL=3.4G MAX=7.1G)
2020-12-01 14:27:17.532 引用的主题表: F_B08LYSQYPCFXYGJMXC1783, F_DM_QYPC_PCQYMXW1737
2020-12-01 14:27:17.532 查询的数据级次范围:没有做限制。
================GRID3================
2020-12-01 14:27:17 在并行计算线程池中,开始计算表格GRID3的第1个分析区(0.0.4.2)!
2020-12-01 14:27:17 正在生成SQL...
2020-12-01 14:27:17 计算表格GRID3
2020-12-01 14:27:17 生成SQL耗时34毫秒
2020-12-01 14:27:17 当前连接池为【ABISYS】,执行SQL:
select * from ( select a.C2 as C2,b.D2 as D2,a.B2 as B2
from (
select MAX(a.YHMC) as C2,b.DLTJZQ as B2
from f_dm_qypc_pcqymxw1737 a
inner join f_b08lysqypcfxygjmxc1783 b
on (b.YHBH = a.YHBH)
where ((b.DLTJZQ = '2020年10月') AND ((b.YDL<>0 or b.YDL is null)))
group by b.DLTJZQ) a
inner join (
select sum(a.YDL) as D2,a.DLTJZQ as B2
from f_b08lysqypcfxygjmxc1783 a
where ((a.DLTJZQ = '2020年10月') AND ((a.YDL<>0 or a.YDL is null)))
group by a.DLTJZQ) b
on (a.B2=b.B2)
order by b.D2 desc ) as temp_ limit 1000
2020-12-01 14:27:17 SQL执行完毕,查询出1条数据,耗时:91毫秒(开始时间:2020-12-01 14:27:17.550;结束时间:2020-12-01 14:27:17.641);其中生成SQL耗时34毫秒;初始获取连接耗时:0毫秒;查询准备总耗时:2毫秒;执行查询sql耗时:55毫秒;
2020-12-01 14:27:17 在并行计算线程池中,完成计算表格GRID3第1个分析区(0.0.4.2)!
================GRID3 END================
2020-12-01 14:27:17.652 执行查询耗时123毫秒。(内存情况:FREE=1.1G TOTAL=3.4G MAX=7.1G)
2020-12-01 14:27:17.672 构造结果表耗时20毫秒。
2020-12-01 14:27:17.672 计算“B75081”耗时143毫秒。(内存情况:FREE=1.1G TOTAL=3.4G MAX=7.1G)
亿信小白 发表于 2020-12-1 14:28
如果不加上就只显示一条数据
计算结果:
改成以用户名称为浮动表元,浮动范围包括另外两列。
因为主题表数据中统计周期的数据都是一样的所以浮动的时候他会自动整合成一条。
xxxl 发表于 2020-12-1 14:31
改成以用户名称为浮动表元,浮动范围包括另外两列。
因为主题表数据中统计周期的数据都是一样的所以浮动 ...
那这样就只有一个问题了,排序后的结果是分组后求和数据,把数量给求和了下图是浮动设置

下图是计算结果,这里的数量是三个相同数据sum的结果,我想要的是一个数据

sql语句:
select * from ( select a.B2 as B2,a.D2 as D2,a.C2 as C2,count(b.D2) as D2_sortn
from (
select a.B2 as B2,b.D2 as D2,a.C2 as C2
from (
select MAX(a.DLTJZQ) as B2,b.YHMC as C2
from f_b08lysqypcfxygjmxc1783 a
inner join f_dm_qypc_pcqymxw1737 b
on (a.YHBH = b.YHBH)
where ((a.DLTJZQ = '2020年10月') AND ((a.YDL<>0 or a.YDL is null)))
group by b.YHMC) a
inner join (
select sum(a.YDL) as D2,b.YHMC as C2
from f_b08lysqypcfxygjmxc1783 a
inner join f_dm_qypc_pcqymxw1737 b
on (a.YHBH = b.YHBH)
where ((a.DLTJZQ = '2020年10月') AND ((a.YDL<>0 or a.YDL is null)))
group by b.YHMC) b
on (a.C2=b.C2)) a
,(
select a.B2 as B2,b.D2 as D2,a.C2 as C2
from (
select MAX(a.DLTJZQ) as B2,b.YHMC as C2
from f_b08lysqypcfxygjmxc1783 a
inner join f_dm_qypc_pcqymxw1737 b
on (a.YHBH = b.YHBH)
where ((a.DLTJZQ = '2020年10月') AND ((a.YDL<>0 or a.YDL is null)))
group by b.YHMC) a
inner join (
select sum(a.YDL) as D2,b.YHMC as C2
from f_b08lysqypcfxygjmxc1783 a
inner join f_dm_qypc_pcqymxw1737 b
on (a.YHBH = b.YHBH)
where ((a.DLTJZQ = '2020年10月') AND ((a.YDL<>0 or a.YDL is null)))
group by b.YHMC) b
on (a.C2=b.C2)) b
where (a.D2<=b.D2)
group by a.C2,a.D2,a.B2
having (count(b.D2)<=10)
order by D2_sortn ) as temp_ limit 1000
本帖最后由 xxxl 于 2020-12-1 15:28 编辑
亿信小白 发表于 2020-12-1 15:05
那这样就只有一个问题了,排序后的结果是分组后求和数据,把数量给求和了下图是浮动设置
下图是计算结果 ...
用条件分组的方式只取到其中某一个数据呢您那有没有考虑过在数据库表中再加一个字段用来识别不同数据也就是主键的哪种效果呢,然后再根据主键浮动