Dynamic Pivot SQL帮助

2020-08-31 03:57发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我有一个下面的数据透...

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

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


大家好,

我有一个下面的数据透视表,我想使日期范围动态化,所以我不必每年都修改查询。

有人可以指出正确的方向吗? 我在网上查看了多个示例,但我不知道从哪里开始

选择*
 来自(
     选择
          a.CardCode,a.CardName,a.LineTotal,CAST(datepart(yy,a.docdate)as varchar)作为DocYear
     FROM InvLessCred a.cardcode = b.cardcode内部联接OSLP上的左外部联接OCRD B c ON b。[SlpCode] = c。[SlpCode]
  左OUTER JOIN UFD1 d ON b。[U_AccMan] = d。[FldValue] AND TableID ='OCRD'和FieldID = 20 WHERE a.CardCode ='TEST'
 )作为t
 枢
 (
     SUM(t.LineTotal)
     FOR [DocYear] IN
     (
 [2015],[2016],[2017],[2018],[2019],[2020]
 )
     )作为h 
4条回答
奄奄一息的小鱼
2020-08-31 04:29

嗨,斯科特,

不确定动态性的含义,但通常来说,您需要添加WHERE子句:

 WHERE a.CardCode ='TEST'AND  ... 

例如,您可以执行以下操作,它将始终为您提供最长4年的数据:

 a.CardCode ='TEST'AND YEAR(  a.DocDate)> = DATEADD(YEAR,-4,GETDATE())

此致

Johan

一周热门 更多>