枢轴液

2020-09-18 20:15发布

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

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


你好

想知道是否可以使用以下查询创建数据透视表

查询的示例是

代码帐户名称余额利润代码

40000销售收入10000销售

40000个销售收入10000个办公室

40000销售收入10000退货

我希望数据透视表在其自己的列中显示每个获利代码

示例

代码帐户名称销售办公室退货

40000销售收入10000 10000 10000

选择T0。[FormatCode],T0。[AcctName],SUM(T1。[Credit] -T1。[Debit])Balance,T1.ProfitCode

 从OACT T0内部联接JDT1 T1到T0.AcctCode = T1.Account
 内联接OJDT T2开启T1.TransId = T2.TransId

 在('I','E')中T1。[RefDate]> = [%0]和T1。[RefDate] <= [%1]和T0。[ActType]

 和DateDiff(YY,T2。[RefDate],GetDate())= 0

 AND T1。[借方]!= T1。[贷方] GROUP BY T0。[FormatCode],

 T0。[AcctName],T1.ProfitCode

 SUM(T1。[借方] -T1。[贷方])!= 0由T0排序。[格式代码]
 

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

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


你好

想知道是否可以使用以下查询创建数据透视表

查询的示例是

代码帐户名称余额利润代码

40000销售收入10000销售

40000个销售收入10000个办公室

40000销售收入10000退货

我希望数据透视表在其自己的列中显示每个获利代码

示例

代码帐户名称销售办公室退货

40000销售收入10000 10000 10000

选择T0。[FormatCode],T0。[AcctName],SUM(T1。[Credit] -T1。[Debit])Balance,T1.ProfitCode

 从OACT T0内部联接JDT1 T1到T0.AcctCode = T1.Account
 内联接OJDT T2开启T1.TransId = T2.TransId

 在('I','E')中T1。[RefDate]> = [%0]和T1。[RefDate] <= [%1]和T0。[ActType]

 和DateDiff(YY,T2。[RefDate],GetDate())= 0

 AND T1。[借方]!= T1。[贷方] GROUP BY T0。[FormatCode],

 T0。[AcctName],T1.ProfitCode

 SUM(T1。[借方] -T1。[贷方])!= 0由T0排序。[格式代码]
 
付费偷看设置
发送
2条回答
软件心理学工程师
1楼-- · 2020-09-18 20:24

斯科特,你好

SQL中的PIVOT函数应该为您工作。 您可以在此处参考语法: PIVOT语法

如果案例中的利润代码过多,则在Excel中使用数据透视表或在Crystal Reports中使用交叉表可能会更轻松。 因为您必须将利润代码硬编码为SQL中的列标题。

希望有帮助。

Jimmy

土豆飞人
2楼-- · 2020-09-18 20:36

Hi

基于波纹管Pivot,您可以编写代码

:从(SELECT

中选择SUM(SUM_ABC)

((Sum(T1。[Debit])-Sum(T1。[Credit]))-((((SELECT isull(sum(a。[DpmAppl]),0)FROM [dbo]。[ODPO] aWHEREa .cardcode = T1。[ShortName]和a。[TaxDate] <='20300101'和a。[Project] = T1。[Project]))+

(SELECT isull(sum(a。[DpmAppVat]),0)FROM [dbo]。[ODPO] aWHEREa.cardcode = T1。[ShortName] and a。[TaxDate] <='20300101'AND a。[ 项目] = T1。[项目]和a.vatsum> 0)-

(SELECT isull(sum((a。[DpmAppl] * b。[Rate]/100)),0)"从[dbo]恢复平衡"。[ODPO] aINNER JOIN DPO5 b on a。[ DocEntry] = b。[AbsEntry] WHEREa.cardcode = T1。[ShortName] and a。[TaxDate] <='20300101'and a。[Project] = T1。[Project]))

-

((SELECT isull(sum(a.doctotal),0)FROM [dbo]。[Orpc] a内部联接rpc1 c在a。[DocEntry] = c。[DocEntry] WHEREa.cardcode = T1。[ShortName ]和a。[TaxDate] <='20300101'和a。[Project] = T1。[Project] and c.basetype = 204))

)SUM_ABC

FROM OJDT T0INNER JOIN JDT1 T1在T0.TransId = T1.TransId内部联接OCRD T2在T2。[CardCode] = T1。[ShortName] INNER JOIN OCRG T3在T2.GroupCode = T3.GroupCode WHERE T1。[项目 ] ='XYZ'和T1。[ShortName]类似于'S%'和T0。[TransType]!= 204和T0.RefDate <='20300101'和T3。[GroupName] ='Suppliers'和T2。[CardName] not 如" Duplicate_%" GROUP BY T1。[ShortName],T2。[CardName],T1。[Project])SUM_PQ,其中SUM_ABC <0

一周热门 更多>