两个浮动表元间如何实现联动

5776
5

emilyxly 小试身手Lv3

发表于2018-9-14 15:43

悬赏1

已解决

楼主
本帖最后由 emilyxly 于 2018-9-14 15:50 编辑

需求
主题表存储数据为:
用户     调入部门    调出部门
01        A1             A2
02        A2             A3
03        A1             A3
04        A3             A1

想得到以下固定报表
部门        调入人数     调出人数
A1            2                   1
A2            1                   1
A3            1                   2

现在是将第一列部门浮动表元浮动到第九列,第十列增加一列部门浮动表元,浮动到最后一列,设置为隐藏,与第一列的值保持一致,但如何保持一致联动,没有找到方法,希望能够帮助解决?


最近看过此主题的会员

liulei6511

esen_5AQQ2N4YOU

2021112209

最佳答案
你好,该问题也可以通过sql数据源的方式实现呢,系统支持sql数据源
下面为示例:
加入存在如下表结构:user_id(用户id),dept_in(调入部门),dept_out(调出部门)可以通过如下sql实现:
select  dept ,max(user_in) as   user_in,max(user_out) as user_out from (
select  dept_in as dept,count(distinct(userid)) as user_in ,0 as user_out from  dm_dept  group by  dept_in
union all
select  dept_out as dept ,0 as user_in,count(distinct(userid))  as user_out from  dm_dept  group by  dept_out
)  group by dept

结果如下:


sql数据源方式:
将sql放在如下所示位置,选择对应的数据源,起一个 数据集代号,测试可以查看结果集

测试成功后,保存,然后进行如下设置:

计算后,可以得到预期内容

5个回答

只看楼主

tangmq 数据达人Lv4

发表于2018-9-14 16:10

只看该作者

取消 关注该作者的回复

沙发

本帖最后由 tangmq 于 2018-9-14 16:13 编辑

如果数据比较整齐,可以试试我这个方法,分别做两个不同的浮动,并对浮动进行计数,并且隐藏其中一个浮动列。如下图所示,第一列按照调入部门浮动分组;第三列按照调出部门浮动分组;两组浮动分别计数,隐藏第三列就行


关于两个浮动如何保持一致:可以对两个浮动设置一个相同的排序依据,都升序或者降序,是不是可以了

emilyxly 小试身手Lv3

发表于2018-9-14 16:16

只看该作者

取消 关注该作者的回复

板凳

tangmq 发表于 2018-9-14 16:10
如果数据比较整齐,可以试试我这个方法,分别做两个不同的浮动,并对浮动进行计数,并且隐藏其中一个浮动列 ...

除了排序没有别的办法么?如果中间有哪个部门,比如A2只有调入,没有调出,数据错开就都错了吧

tangmq 数据达人Lv4

发表于2018-9-14 16:24

只看该作者

取消 关注该作者的回复

地板

emilyxly 发表于 2018-9-14 16:16
除了排序没有别的办法么?如果中间有哪个部门,比如A2只有调入,没有调出,数据错开就都错了吧 ...

部门设计一个维表,  报表浮动那里设置 按照维度补齐,这样就能确保 部门是完整的不会错开了

emilyxly 小试身手Lv3

发表于2018-9-14 16:38

只看该作者

取消 关注该作者的回复

5#

tangmq 发表于 2018-9-14 16:24
部门设计一个维表,  报表浮动那里设置 按照维度补齐,这样就能确保 部门是完整的不会错开了 ...

部门有1000多个,实际上每个月存在调动情况的不是特别多,可有别的办法让两个浮动表元联动呢,比如第二个浮动表元,设置过滤条件部门ID=Self.leftdimcell.value

大白 小试身手Lv3

发表于2018-9-14 15:43

只看该作者

取消 关注该作者的回复

6#

你好,该问题也可以通过sql数据源的方式实现呢,系统支持sql数据源
下面为示例:
加入存在如下表结构:user_id(用户id),dept_in(调入部门),dept_out(调出部门)可以通过如下sql实现:
select  dept ,max(user_in) as   user_in,max(user_out) as user_out from (
select  dept_in as dept,count(distinct(userid)) as user_in ,0 as user_out from  dm_dept  group by  dept_in
union all
select  dept_out as dept ,0 as user_in,count(distinct(userid))  as user_out from  dm_dept  group by  dept_out
)  group by dept

结果如下:



sql数据源方式:
将sql放在如下所示位置,选择对应的数据源,起一个 数据集代号,测试可以查看结果集

测试成功后,保存,然后进行如下设置:

计算后,可以得到预期内容

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号