sql列转行问题

如何通过列转行实现以下效果

FineReport aifanwen 发布于 2024-4-20 10:53
1min目标场景问卷 立即参与
回答问题
悬赏:13 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
ID1208Lv6高级互助
发布于2024-4-20 11:32(编辑于 2024-4-20 11:49)

SQLserver 行列转换参考--https://blog.csdn.net/weixin_47976708/article/details/132367758

--------------------------------------

还有一种方式是不用行列转换,直接子查询,然后单元格过滤也可以实现

image.png

1、子查询根据filed分类,分别查询供应商ds1、合同金额ds2、开票金额ds3、付款金额ds4

image.png

2、单元格多数据源过滤

image.png

3、如果需要添加查询条件,在ds1里面正常添加即可

WorkBook3.rar

最佳回答
0
华莉星宸Lv6高级互助
发布于2024-4-20 11:38

写SQL处理,我用的是Oracle数据库,KK就是你列的数据表

image.png

select aa.*, bb.ro,bb.kpje,bb.fkje

  from (select gorup as gys, value as htje

          from KK

         where fieldlabel = '合同金额') aa

  left join (select a.gys, a.ro, sum(kpje) as kpje, sum(fkje) as fkje

               from (select gorup as gys, ro, value as kpje, null as fkje

                        from KK

                       where fieldlabel = '开票金额'

                      union all

                      select gorup as gys, ro, null as kpje, value as fkje

                        from KK

                       where fieldlabel = '付款金额') a

              group by a.gys, a.ro) bb

    on aa.gys = bb.gys

SQL查询结果

image.png

-----------------------------------------------------------------------------------------------------

设计器

image.png

注意:合计A3的左父格是A2

预览结果

image.png

  • 3关注人数
  • 202浏览人数
  • 最后回答于:2024-4-20 11:49
    请选择关闭问题的原因
    确定 取消
    返回顶部