Crystal交叉表,删除零值的列

2020-09-24 01:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 专家 我正在使用一个SQL...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家

我正在使用一个SQL视图,从该视图中我将几个数据库的财务数据提取到Crystal Income Statement中。 专栏和其他公司。

我正在为收入,支出等使用多个交叉表。 并由他们合计。 该报告需要导出到Excel中-为此,我需要将列对齐。 我的问题是,当没有为该公司记录的收入时,该列不会显示,并且要导出到Excel,即使它为零,也需要显示。

根据屏幕截图,我没有在"交叉表"上选择"抑制"。

以下是一些屏幕截图:

(83.9 kB)
6条回答
派大星 ヾ
2020-09-24 01:38

Abhilash&Jimmy,

你们真棒!

非常感谢您的帮助-我知道要像我一样支持SQL的相对新手并不容易。

我用以下方法解决了这个问题,因为它同时使用了您的建议,但可能会过时了,但是它正在工作.....

使用[CompanyA]
 走
/******对象:StoredProcedure [dbo]。[yRptSP_IncomeStatementService]脚本日期:2018年3月7日下午12:00:28 ******/
 设置ANSI_NULLS ON
 走
 将QUOTED_IDENTIFIER设置为ON
 走

 更改过程[dbo]。[yRptSP_IncomeStatementService]
 -@ BegDate为datetime = '01 -01-2017',
 -@ EndDate为datetime = '01 -01-2018'
 @BegDate作为日期时间,
 @EndDate作为日期时间
 如


 开始
 -添加了SET NOCOUNT ON以防止产生额外的结果集
 -干扰SELECT语句。
 开启NOCOUNT;

 使用DataT AS
 (选择'CompanyA'AS公司,T5.U_Master,T5.U_Master_Name,T5.U_Inguran,T0.FatherNum,T0.FormatCode,T0.AcctName,SUM(T1.Credit-T1.Debit)AS余额,T3.OcrCode,T3  .OcrName,T4.OcrCode AS Expr1,T4.OcrName AS Expr2,T2.RefDate,T0.GroupMask,T0.Segment_1,T0.Segment_2,T0.Segment_3
                      来自dbo.OACT AS T0内部联接
                                    dbo.JDT1 AS T1在T0.AcctCode = T1.Account INNER JOIN
                                    dbo.OJDT AS T2在T1.TransId = T2.TransId左外部联接
                                    dbo.OOCR AS T3在T1.ProfitCode = T3.OcrCode左外部联接
                                    dbo.OOCR AS T4在T1.OcrCode2 = T4.OcrCode左外部联接
                                    dbo。[@ A_GL_MAPPING]为T5,T5.U_CompanyA = T0.FatherNum
                      在哪里(T0.GroupMask IN(8,7,6,6,5,4))
 AND(T1。借方<> T1。贷方)
 AND(T3.OcrCode ='SRVC')
 AND T2.RefDate @BegDate和@EndDate之间
                      GROUP BY T0.GroupMask,T0.FatherNum,T0.AcctName,T0.FormatCode,T3.OcrCode,T3.OcrName,T4.OcrCode,T4.OcrName,T2.RefDate,T0.Segment_1,T0.Segment_2,T0.Segment_3,  T5.U_Master,T5.U_CompanyA,T5.U_Master_Name
 
  全联盟
  选择
 " CompanyB" AS公司,
 '排序中',-T5。[U_Master],
 '排序中',-T5。[U_Master_Name],
 '排序中',-T5。[U_ST_Canada],
 '排序',-T0.FatherNum,
 '',-T0.FormatCode,
 '',-T0.AcctName,
 0,--SUM(T1.SYSCred-T1.SYSDeb)AS余额,
 '',-T3.OcrCode,
 '',-T3.OcrName,
 '',-T4.OcrCode AS Expr1,
 '',-T4.OcrName AS Expr2,
 @BegDate,-T2.RefDate,
 4,-T0.GroupMask,
 '',-T0.Segment_1,
 '',-T0.Segment_2,
 ''--T0.Segment_3
 全联盟
 选择
 " CompanyA" AS公司,
 '排序中',-T5。[U_Master],
 '排序中',-T5。[U_Master_Name],
 '排序中',-T5。[U_ST_Canada],
 '排序',-T0.FatherNum,
 '',-T0.FormatCode,
 '',-T0.AcctName,
 0,--SUM(T1.SYSCred-T1.SYSDeb)AS余额,
 '',-T3.OcrCode,
 '',-T3.OcrName,
 '',-T4.OcrCode AS Expr1,
 '',-T4.OcrName AS Expr2,
 @BegDate,-T2.RefDate,
 4,-T0.GroupMask,
 '',-T0.Segment_1,
 '',-T0.Segment_2,
 ''--T0.Segment_3

 全联盟
                     
 选择'CompanyB'AS公司,T5.U_Master,T5.U_Master_Name,T5.U_ST_Canada,T0.FatherNum,T0.FormatCode,T0.AcctName,SUM(T1.SYSCred-T1.SYSDeb)AS余额,T3.OcrCode,T3。  OcrName,T4.OcrCode AS Expr1,T4.OcrName AS Expr2,T2.RefDate,T0.GroupMask,T0.Segment_1,T0.Segment_2,
                                   T0.Segment_3
                      来自CompanyB.dbo.OACT AS T0内部联接
                                   CompanyB.dbo.JDT1 AS T1在T0.AcctCode = T1.Account INNER JOIN
                                   CompanyB.dbo.OJDT AS T2在T1.TransId = T2.TransId左外部联接
                                   CompanyB.dbo.OOCR AS T3在T1.ProfitCode = T3.OcrCode左外部联接
                                   CompanyB.dbo.OOCR AS T4在T1.OcrCode2 = T4.OcrCode左外部联接
                                   CompanyB.dbo。[@ A_GL_MAPPING] AS T5上T5.U_ComapnyB = T0.FatherNum
                      在哪里(T0.GroupMask IN(8,7,6,6,5,4))
 AND(T1。借方<> T1。贷方)
 AND T2.RefDate @BegDate和@EndDate之间
                      GROUP BY T0.GroupMask,T0.FatherNum,T0.AcctName,T0.FormatCode,T3.OcrCode,T3.OcrName,T4.OcrCode,T4.OcrName,T2.RefDate,T0.Segment_1,T0.Segment_2,T0.Segment_3,  T5.U_Master,T5.U_ST_Canada,T5.U_Master_Name)
 ,

 Comp AS
 (选择" Inguran" AS公司
     全联盟
  选择
  'ST_Canada'AS Company)
 
  SELECT Comp_1.Company,DataT_1.U_Master,DataT_1.U_Master_Name,DataT_1.U_Inguran,DataT_1.FatherNum,DataT_1.FormatCode,DataT_1.AcctName,DataT_1.Balance,DataT_1.OcrCode,DataT_1.OcrName,DataT_1.OcrCode AS Expr1,DataT_1。  AS Expr2,DataT_1.RefDate,DataT_1.GroupMask,DataT_1.Segment_1,
                 DataT_1.Segment_2,DataT_1.Segment_3
    从Comp AS Comp_1左外联接
                 DataT AS DataT_1 ON Comp_1.Company = DataT_1.Company

 结束


 

一周热门 更多>