選單

SAP License:一個關於交叉表的問題

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 License:一個關於交叉表的問題

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 模組業務操作,有效的簡化企業商超訂單管理工作流程,保證訂單資料處理的統一、準確、高效,實現跨系統、組織的協同管理,提升企業營銷效率。