点击此处---> 群内免费提供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排序。[格式代码]
斯科特,你好
SQL中的PIVOT函数应该为您工作。 您可以在此处参考语法: PIVOT语法。
如果案例中的利润代码过多,则在Excel中使用数据透视表或在Crystal Reports中使用交叉表可能会更轻松。 因为您必须将利润代码硬编码为SQL中的列标题。
希望有帮助。
Jimmy
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
一周热门 更多>