簡體   English   中英

使用SQL存儲過程作為Microsoft Dynamics CRM報表的數據

[英]Using SQL Stored Procedure as data for a Microsoft Dynamics CRM report

我們需要在CRM中創建一個半復雜的報告,以顯示一些累計的潛在客戶價值。 我看到此報告工作的唯一方法是編寫一個存儲過程,該過程創建幾個臨時表並使用游標計算/累積數據。 然后就是從存儲過程中獲取數據以從Reporting Server報表中進行訪問的問題。 有人知道這是否可能嗎? 如果我可以選擇編寫自定義SQL語句以生成報告數據,那將非常好。

有指針嗎?

編輯:

為了闡明我對游標的使用,我可以確切地解釋我正在使用它們。

我的報告(應該是圖表)的基礎是一個表(table1),其中包含3個相關列:

Start date
Number of months
Value

我創建一個包含以下各列的臨時表(temp1):

Year
Month number
Month name
Value

首先,我循環瀏覽第一個表中的行,並在臨時表中為每個月插入一行,以月為單位遞增,同時將值設置為總值除以月。 即:

表1中的2009-03-01、4,1000收益

2009,03,March,250
2009,04,April,250
2009,05,May,250
2009,06,June,250

在temp1表中。

然后,使用一個新的游標對temp1中的值求和並創建一個運行總計,並將其輸入到temp2中,並作為圖表數據返回給調用方。

示例temp1數據:

2009,03,March,250
2009,04,April,200
2009,04,April,250
2009,05,May,250
2009,05,May,100
2009,06,June,250

產生temp2數據:

2009,03,March,250,250
2009,04,April,450,700
2009,05,May,350,1050
2009,06,June,250,1300

最后一列是運行總計,每個新年度從零開始。

您是否考慮過使用視圖。 如果非常復雜,請使用視圖的層次結構。 每個視圖將代表您的一個臨時表。

編輯基於評論

我在考慮SQL視圖,基本上與您在存儲過程中編寫的SQL相同。

我還沒有做到這一點-只是在思考如何開始。 我可以確定存儲過程何時填充臨時表,它們會使用篩選視圖來提取數據。 然后,我將對執行SP的訪問權限進行設置,使其具有與“篩選”視圖相同的安全角色(應該可以允許PrivReportingGroup的成員使用)。

我認為這將包括允許您在報告中執行SP。 我想如果您事先設置SP,SSRS設計人員可以通過某種方式向您展示可用的數據並在設計時選擇SP。 但是我不確定。

首先,由於不需要大多數游標,因此您在其中究竟要做什么。 也許有一個基於集合的解決方案,然后您就可以使用視圖了。

另一個可能的思路是,如果要在游標中執行諸如運行總計之類的操作,是否可以將視圖創建為沒有運行總計的源,並讓報表本身進行這種計算?

此外,SSRS報告可以使用存儲的proc作為數據源,在聯機叢書中了解有關操作方法。

我找到了解決方案。 從Microsoft下載了Report Builder 2.0。 這使我可以編寫查詢並為報告數據調用存儲過程。

Microsoft SQL Server報表生成器鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM