[英]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。 這使我可以編寫查詢並為報告數據調用存儲過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.