SAP License:一个关于交叉表的问题
在微信群里,崔总问了一个问题,是关于用SQL制作交叉表的,问题如下:
=========================================
主要目的是:将CardCode重复的行 的次数 显示出来
现有一个查询表结果为:
CardCode Total
A001 100.00
B003 920.00
C002 800.00
A001 830.00
C002 1000.00
A001 500
现在想将结果显示成这样的形式:
CardCode Total 1 Total 2 Total 3
A001 100.00 830 500
B003 920.00 0 0
C002 800.00 1000 0
(假如有N个CardCode 或者 一个CardCode 有N个Total,同理可以进行依次循环)
想法是通过SQL临时表来实现:
现在想把这个结果插入一个临时表 Tmp
如下:
CardCode Total Number
A001 100.00 1
B003 920.00 1
C002 800.00 1
A001 830.00 2
C002 1000.00 2
A001 500 3
然后通过动态SQL语句 以Number 进行 行转列显示成所想达到的效果。
都是Tmp 这个临时该怎么实现?用IF循环?还是游标?还是想通过循环来实现,游标太复杂了。呵呵
但是语句写出来的结果,总是达不到所想要的效果。
===============================
粗略来看,要制作所需要的表貌视很简单,但经过仔细分析,发现要直接通过SQL脚本制作这个交叉表的确很难。在不改变源表结构的情况下希望直接制作交叉表,对我来说几呼不可能实现。
如果增加一个字段于用分离数据,问题就会变得非常简单。按照这个恩路,在源表中增加一个时间字段,一个简单的SQL就可以搞定:
SQL脚本如下:
_declare @Str nvarchar(MAX)
_select @str = ‘T0.Cardcode’
_select @str = @str+ ‘,sum( Case T0.DocDueDate when ”’ + convert(nvarchar,T0.DocDueDate,111) + ”’ then T0.Doctotal else 0 end ) as ”’ + convert(nvarchar,T0.DocDueDate,111) + ””
from (_select Distinct DocDueDate from ORCT ) T0
_select @str = N’_select ‘+ @str + N’ from ORCT T0 group by T0.CardCode’
_select @str
(备注以后再添请大家关注!)
执行结果如下图:
SAP相关产品:
SAP GRC权限合规检查系统(简称AMS-R系统)是SAP ERP应用企业进行权限合规检查、违规数据抓取和IT审计的理想工具。
AMS-V SAP License 资产优化管理系统产品:是应用于SAP系统权限风险控制及注册用户账号管理为目标的SAP软件资产精益化管理方案。
SAP 日志堡垒机安全管理系统(简称AMS-L系统)是一款面向SAP ERP 系统的网络安全管理工具,提供基于SAP系统用户业务行为的常态化监管,是对SAP现有日志体系的有效增强管理。
SAP 运维管理平台系统(简称AMS-Ops)旨在确保企业SAP应用系统健康、稳定运行的基础上,持续性的改进、优化,从而满足其业务发展需要的企业级SAP系统运维管理服务。
AMS SAP 商超订单统一管理系统以商超平台订单集中管理为核心,系统支持多平台、多店铺、全渠道系统采购订单、验收单、结算单等业务单据的统一管理;商超订单统一管理系统支持与 SAP ERP 系统的无缝衔接,在SAP ERP系统中自动生成销售订单、外向交货单,核对验收单、结算单等 SD 模块业务操作,有效的简化企业商超订单管理工作流程,保证订单数据处理的统一、准确、高效,实现跨系统、组织的协同管理,提升企业营销效率。
关于赛锐信息
河南赛锐信息科技有限公司(简称“赛锐信息”)是一家致力于SAP ERP系统应用的服务商,公司立足打造基于AMS产品套件的企业信息化解决方案,结合前沿技术追求最佳用户体验、企业信息化优秀解决方案和企业级产品应用的供应商。公司自主研发的AMS系列软件产品是国内首个用于SAP权限风险识别的增强系统,也是同行业用户精益化管理解决方案中最优的解决方案,作为用户管理、风险规避和信息审计的辅助工具,其有助于规范企业的管理行为,帮助建立合规的管控流程,有效提高企业IT资产投资回报率;AMS系列产品在各项技术指标上拥有完全的、独立的领先优势,可以满足市场竞争、技术许可和标准制定等方面的需要。
作者:SAP权限管理 QQ:2651000673