分享 | 复杂交叉表查询示例-综合交流区论坛-低代码平台-本牛千智|专注WorkFine

分享 | 复杂交叉表查询示例

需求场景

大部分查询需求只需要向下纵向的一维扩展,当查询时需要有纵向和横向不确定纬度的二维扩展需求,普通的扩展表就无法处理了,需要利用交叉表来处理,如下截图:

查询需求如下:

  1. 按年月纬度和姓名进行人员工作量得分查询,姓名为空则查询全部人员;
  2. 每个人每天的工位号不同,工作量也不同,基础分规则为主任100、科员80,因此需要扩展为3列/天;
  3. 合计=工作量+基础分
  4. 最后给合计分计算排名,但不需要顺序展示

实现步骤:

  • 定义交叉表
  • 设置字段合并
  • 设计提取公式

交叉表定义

日期字段设置为同值合并

提取公式设计

无注明的截图,选项设置保持默认

公式列表

  1. 给查询字段年月赋一个初始值
  2. 提取上标题
  3. 提取左标题
  4. 查询演示的工作量是随机生成的模拟数据
  5. 提取工位和基础分
  6. 计算(工作量+基础分)这个公式需要手动行列匹配
  7. 排名

详情如下

1、给查询字段年月赋一个初始值

2、提取上标题

row_number()over(order by 本报表.[工作量统计_扩展表].[合计] desc)

3、提取左标题

4、查询演示的工作量是随机生成的模拟数据

CAST(CRYPT_ GEN_ RANDOM(2)%100 AS varchar)

5、提取工位和基础分

case
	when 本报表.[工作量统计_扩展表].[分项]= '工位' then LEFT(NEWID(),4)
	when 本报表.[工作量统计_扩展表].[分项]= '基础分' then 
		case
		when 本报表.[工作量统计_扩展表].[岗位] then '100'
		else '80'
end

6、计算(工作量+基础分)

这个公式需要手动行列匹配

7、排名

查询效果动图

以上就是本次的分享内容,如果您对我们的《复杂交叉表查询示例》感兴趣,或希望了解更多其他应用技巧,欢迎留言告诉我们。

原文链接

分享 | 复杂交叉表查询示例
https://mp.weixin.qq.com/s/FIs5xzfJx93lbI4wR3uloA

相关文章