-
chestnut 数据领袖Lv6
发表于2022-10-19 21:09
楼主
根据用户表与机构表,制作分析表用于查找用户对应的机构信息。
此处使用SQL数据源报表,SQL如下:
复制代码设置有参数 @yhid @yhmc 类型为输入框,可任意匹配。
计算示例
此处使用的是系统库,对应用户表、机构表。若系统中配置的是第三方机构,可修改对应的连接池,数据库表名称、字段、关联关系。
此处使用SQL数据源报表,SQL如下:
- select g.user_id,
- g.user_name,
- g.org_id,
- g.org_name,
- g.org_id2,
- g.org_name2,
- g.org_id3,
- g.org_name3,
- g.org_id4,
- h.caption_ org_name4,
- h.parent_ org_id5
- from (select e.user_id,
- e.user_name,
- e.org_id,
- e.org_name,
- e.org_id2,
- e.org_name2,
- e.org_id3,
- f.caption_ org_name3,
- f.parent_ org_id4
- from (select c.user_id,
- c.user_name,
- c.org_id,
- c.org_name,
- c.org_id2,
- d.caption_ org_name2,
- d.parent_ org_id3
- from (select a.userid_ user_id,
- a.caption_ user_name,
- c.orgid_ org_id,
- b.caption_ org_name,
- b.parent_ org_id2
- from es10_user a, es10_org b,es10_userorg c
- where a.userid_=c.userid_ and c.orgid_ = b.orgid_(+)
- and <#=if(@yhid<>'',"a.user_id like '%"+@yhid+"%' ","1=1")#>
- and <#=if(@yhmc<>'',"a.user_name like '%"+@yhmc+"%' ","1=1")#>
- ) c,es10_org d
- where c.org_id2 = d.orgid_(+)) e,
- es10_org f
- where e.org_id3 = f.orgid_(+)) g,
- es10_org h
- where g.org_id4 = h.orgid_(+)
计算示例
此处使用的是系统库,对应用户表、机构表。若系统中配置的是第三方机构,可修改对应的连接池,数据库表名称、字段、关联关系。
2个回答
zhuyj 发表于 2022-11-10 13:54
这里的es10_userorg 是什么表?如果只有机构和人员两张表怎么做呢?
es10_userorg是系统库表,存的是用户与机构的对应关系。
如果只有用户表和机构表,对应修改第一个的逻辑,取用户id、用户名、机构id、机构名、机构上级id,然后用户表左左连接机构表。
- select a.userid_ user_id,
- a.caption_ user_name,
- c.orgid_ org_id,
- b.caption_ org_name,
- b.parent_ org_id2
- from es10_user a, es10_org b,es10_userorg c
- where a.userid_=c.userid_ and c.orgid_ = b.orgid_(+)