2013-09-30 20 views
0

我試圖形成一個報告了以下查詢的,而我遇到的問題是:我怎麼把它做一個結構,我可以打電話它在SSRS,說叫MTF,PMonth,PPMonth作爲「類型」的選擇,當我把它變成SSRS,我想MTD,PMonth和PPMonth出現在報告中作爲單獨實體。限制由MTD,在此之前一個月,等查詢到SSRS

-- ResWare.dbo.rptClosingPipeline3 
SET NOCOUNT ON 

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 

DECLARE @today varchar(20) 
SET  @today = Convert(varchar, GetDate(), 101) 

DECLARE @startdate datetime 
SET @startdate = dbo.GetUTCDateTimeFunc(DateAdd(m, 0, convert(datetime, convert(char(8), current_timestamp, 112)) - day(current_timestamp) + 1))-- 

DECLARE @enddate datetime --today at midnight. first moment of the day 
SET @enddate = dbo.GetUTCDateTimeFunc(@today)-- 

DECLARE @MTD datetime 
SET @MTD = dbo.GetUTCDateTimeFunc(DateAdd(m, 0, convert(datetime, convert(char(8), current_timestamp, 112)) - day(current_timestamp) + 1))-- 

DECLARE @PMonth datetime 
SET @PMonth = dbo.GetUTCDateTimeFunc(DateAdd(m, -1, convert(datetime, convert(char(8), current_timestamp, 112)) - day(current_timestamp) + 1)) 
DECLARE @PMonthEnd datetime 
SET @PMonthEnd = dbo.GetUTCDateTimeFunc(DateAdd(m, 0, convert(datetime, convert(char(8), current_timestamp, 112)) - day(current_timestamp) + 1))-- 

DECLARE @PPMonth datetime 
SET @PPMonth = dbo.GetUTCDateTimeFunc(DateAdd(m, -2, convert(datetime, convert(char(8), current_timestamp, 112)) - day(current_timestamp) + 1)) 
DECLARE @PPMonthEnd datetime 
SET @PPMonthEnd = dbo.GetUTCDateTimeFunc(DateAdd(m, -1, convert(datetime, convert(char(8), current_timestamp, 112)) - day(current_timestamp) + 1))-- 


SELECT FM.FileNumber AS FileNumber, 
     ISNULL(IU.TEAMNAME,'') AS Closer, 
     dbo.GetLocalDateTimeFunc(FM.ActualSettlementDate) AS Scheduled, 
     dbo.GetLocalDateTimeFunc(FM.DisbursementDate) AS DisbursementDate, 
     dbo.GetLocalDateTimeFunc(FM.EstSettlementDate) AS EstSettlementDate, 
     CASE WHEN EXISTS (SELECT * FROM FilePartnerRel FPR1 
     WHERE FPR1.PartnerTypeID = 10033 AND FPR1.FileID = FM.FileID) 
     THEN P.State+'-(W)' 
     ELSE P.State END AS State, 
     ISNULL(P.StreetNumber,'')+' '+ISNULL(P.StreetDirection,'')+' '+ISNULL(P.StreetName,'')+' '+ISNULL(P.Unit,'')AS PropertyAddress, 
     S.Name, 
     (SELECT CONVERT(varchar(7000),Body) FROM Note WHERE NoteID = 
     (Select MAX(N.NoteID) 
     FROM Note N 
     JOIN FileActions A1 ON A1.FileID=FM.FileID 
     AND A1.ActionDefID IN (141,386,306) 
     JOIN FileActionNoteRel AN ON AN.FileActionsID=A1.FileActionsID 
     AND N.NoteID = AN.NoteID)) AS Note, 
     (SELECT COUNT(DISTINCT FA1.FileID) FROM FileActions FA1 
     JOIN FileMain FM1 ON FM1.FileID = FA1.FileID 
       AND FM1.FileNumber NOT LIKE 'PA-%' 
     JOIN Coordinator C1 ON C1.FileID = FA1.FileID 
     AND C1.CoordinatorTypeID IN (2, 6) 
     AND C1.CoordinatorID = C.CoordinatorID 
     WHERE FA1.ActionDefID IN (61,315,393) 
     AND FA1.ReceivedDate >= @startdate 
     AND FM1.StatusID != 8), 
     (SELECT COUNT(DISTINCT FA1.FileID) FROM FileActions FA1 
     JOIN FileMain FM1 ON FM1.FileID = FA1.FileID 
       AND FM1.FileNumber NOT LIKE 'PA-%' 
     WHERE FA1.ActionDefID IN (61,315,393) 
     AND FA1.ReceivedDate >= @startdate 
     AND FM1.StatusID != 8) AS TotalDisb 
     , TRT.Name CurativeItem 
     , SD.CommitmentEffDate 
FROM  FileMain FM 
JOIN  ActionListTransactionType ALTT ON ALTT.ActionListTransactionTypeID = FM.ActionListTransactionTypeID 
JOIN  ActionListProductType ALPT ON ALPT.ActionListProductTypeID = FM.ActionListProductTypeID 
JOIN  Coordinator C ON C.FileID = FM.FileID 
      AND C.CoordinatorTypeID IN (2) 
LEFT JOIN FilePartnerRel FPR ON FPR.FileID = FM.FileID 
      AND FPR.PartnerTypeID = 5 
JOIN  Property P ON P.FileID = FM.FileID 
LEFT JOIN PartnerCompany PC ON PC.PartnerCompanyID = FPR.PartnerCompanyID 
JOIN  PartnerCompany PC1 ON PC1.PartnerCompanyID = FM.ClientID 
JOIN  TEAM IU ON IU.TEAMID = C.CoordinatorID 
JOIN  Status S ON S.StatusID = FM.StatusID 
LEFT JOIN TitleReview TR ON TR.FileID = Fm.FileID 
      AND (TR.InternalClear IS NULL OR TR.InternalClear = 0) 
LEFT JOIN TitleReviewType TRT ON TRT.TitleReviewTypeID = TR.TitleReviewTypeID 
LEFT JOIN SearchData SD ON SD.FileID = FM.FileID 

WHERE FM.OfficeID = 1 
     AND FM.FileNumber NOT LIKE 'PA-%' 
     AND FM.StatusID IN (2,4,5,10,11,14,15,18) 

UNION ALL 

SELECT FM.FileNumber AS FileNumber, 
     ISNULL(IU.TEAMNAME,'') AS Closer, 
     dbo.GetLocalDateTimeFunc(FM.ActualSettlementDate) AS Scheduled, 
     dbo.GetLocalDateTimeFunc(FM.DisbursementDate) AS DisbursementDate, 
     dbo.GetLocalDateTimeFunc(FM.EstSettlementDate) AS EstSettlementDate, 
     CASE WHEN EXISTS (SELECT * FROM FilePartnerRel FPR1 
     WHERE FPR1.PartnerTypeID = 10033 AND FPR1.FileID = FM.FileID) 
     THEN P.State+'-(W)' 
     ELSE P.State END AS State, 
     ISNULL(P.StreetNumber,'')+' '+ISNULL(P.StreetDirection,'')+' '+ISNULL(P.StreetName,'')+' '+ISNULL(P.Unit,'')AS PropertyAddress, 
     S.Name, 
     (SELECT CONVERT(varchar(7000),Body) FROM Note WHERE NoteID = 
     (Select MAX(N.NoteID) 
     FROM Note N 
     JOIN FileActions A1 ON A1.FileID=FM.FileID 
     AND A1.ActionDefID IN (141,386,306) 
     JOIN FileActionNoteRel AN ON AN.FileActionsID=A1.FileActionsID 
     AND N.NoteID = AN.NoteID)) AS Note, 
     (SELECT COUNT(DISTINCT FA1.FileID) FROM FileActions FA1 
     JOIN FileMain FM1 ON FM1.FileID = FA1.FileID 
       AND FM1.FileNumber NOT LIKE 'PA-%' 
     JOIN Coordinator C1 ON C1.FileID = FA1.FileID 
     AND C1.CoordinatorTypeID IN (2, 6) 
     AND C1.CoordinatorID = C.CoordinatorID 
     WHERE FA1.ActionDefID IN (61,315,393) 
     AND FA1.ReceivedDate >= @MTD 
     AND FM1.StatusID != 8), 
     (SELECT COUNT(DISTINCT FA1.FileID) FROM FileActions FA1 
     JOIN FileMain FM1 ON FM1.FileID = FA1.FileID 
       AND FM1.FileNumber NOT LIKE 'PA-%' 
     WHERE FA1.ActionDefID IN (61,315,393) 
     AND FA1.ReceivedDate >= @MTD 
     AND FM1.StatusID != 8) AS TotalDisb 
     , TRT.Name CurativeItem 
     , SD.CommitmentEffDate 
FROM  FileMain FM 
JOIN  ActionListTransactionType ALTT ON ALTT.ActionListTransactionTypeID = FM.ActionListTransactionTypeID 
JOIN  ActionListProductType ALPT ON ALPT.ActionListProductTypeID = FM.ActionListProductTypeID 
JOIN  Coordinator C ON C.FileID = FM.FileID 
      AND C.CoordinatorTypeID IN (2) 
LEFT JOIN FilePartnerRel FPR ON FPR.FileID = FM.FileID 
      AND FPR.PartnerTypeID = 5 
JOIN  Property P ON P.FileID = FM.FileID 
LEFT JOIN PartnerCompany PC ON PC.PartnerCompanyID = FPR.PartnerCompanyID 
JOIN  PartnerCompany PC1 ON PC1.PartnerCompanyID = FM.ClientID 
JOIN  TEAM IU ON IU.TEAMID = C.CoordinatorID 
JOIN  Status S ON S.StatusID = FM.StatusID 
LEFT JOIN TitleReview TR ON TR.FileID = Fm.FileID 
      AND (TR.InternalClear IS NULL OR TR.InternalClear = 0) 
LEFT JOIN TitleReviewType TRT ON TRT.TitleReviewTypeID = TR.TitleReviewTypeID 
LEFT JOIN SearchData SD ON SD.FileID = FM.FileID 

WHERE FM.OfficeID = 1 
     AND FM.FileNumber NOT LIKE 'PA-%' 
     AND FM.StatusID IN (2,4,5,10,11,14,15,18) 

UNION ALL 

SELECT FM.FileNumber AS FileNumber, 
     ISNULL(IU.TEAMNAME,'') AS Closer, 
     dbo.GetLocalDateTimeFunc(FM.ActualSettlementDate) AS Scheduled, 
     dbo.GetLocalDateTimeFunc(FM.DisbursementDate) AS DisbursementDate, 
     dbo.GetLocalDateTimeFunc(FM.EstSettlementDate) AS EstSettlementDate, 
     CASE WHEN EXISTS (SELECT * FROM FilePartnerRel FPR1 
     WHERE FPR1.PartnerTypeID = 10033 AND FPR1.FileID = FM.FileID) 
     THEN P.State+'-(W)' 
     ELSE P.State END AS State, 
     ISNULL(P.StreetNumber,'')+' '+ISNULL(P.StreetDirection,'')+' '+ISNULL(P.StreetName,'')+' '+ISNULL(P.Unit,'')AS PropertyAddress, 
     S.Name, 
     (SELECT CONVERT(varchar(7000),Body) FROM Note WHERE NoteID = 
     (Select MAX(N.NoteID) 
     FROM Note N 
     JOIN FileActions A1 ON A1.FileID=FM.FileID 
     AND A1.ActionDefID IN (141,386,306) 
     JOIN FileActionNoteRel AN ON AN.FileActionsID=A1.FileActionsID 
     AND N.NoteID = AN.NoteID)) AS Note, 
     (SELECT COUNT(DISTINCT FA1.FileID) FROM FileActions FA1 
     JOIN FileMain FM1 ON FM1.FileID = FA1.FileID 
       AND FM1.FileNumber NOT LIKE 'PA-%' 
     JOIN Coordinator C1 ON C1.FileID = FA1.FileID 
     AND C1.CoordinatorTypeID IN (2, 6) 
     AND C1.CoordinatorID = C.CoordinatorID 
     WHERE FA1.ActionDefID IN (61,315,393) 
     AND FA1.ReceivedDate >= @PMonth 
     AND FM1.StatusID != 8), 
     (SELECT COUNT(DISTINCT FA1.FileID) FROM FileActions FA1 
     JOIN FileMain FM1 ON FM1.FileID = FA1.FileID 
       AND FM1.FileNumber NOT LIKE 'PA-%' 
     WHERE FA1.ActionDefID IN (61,315,393) 
     AND FA1.ReceivedDate >= @PMonth 
     AND FM1.StatusID != 8) AS TotalDisb 
     , TRT.Name CurativeItem 
     , SD.CommitmentEffDate 
FROM  FileMain FM 
JOIN  ActionListTransactionType ALTT ON ALTT.ActionListTransactionTypeID = FM.ActionListTransactionTypeID 
JOIN  ActionListProductType ALPT ON ALPT.ActionListProductTypeID = FM.ActionListProductTypeID 
JOIN  Coordinator C ON C.FileID = FM.FileID 
      AND C.CoordinatorTypeID IN (2) 
LEFT JOIN FilePartnerRel FPR ON FPR.FileID = FM.FileID 
      AND FPR.PartnerTypeID = 5 
JOIN  Property P ON P.FileID = FM.FileID 
LEFT JOIN PartnerCompany PC ON PC.PartnerCompanyID = FPR.PartnerCompanyID 
JOIN  PartnerCompany PC1 ON PC1.PartnerCompanyID = FM.ClientID 
JOIN  TEAM IU ON IU.TEAMID = C.CoordinatorID 
JOIN  Status S ON S.StatusID = FM.StatusID 
LEFT JOIN TitleReview TR ON TR.FileID = Fm.FileID 
      AND (TR.InternalClear IS NULL OR TR.InternalClear = 0) 
LEFT JOIN TitleReviewType TRT ON TRT.TitleReviewTypeID = TR.TitleReviewTypeID 
LEFT JOIN SearchData SD ON SD.FileID = FM.FileID 

WHERE FM.OfficeID = 1 
     AND FM.FileNumber NOT LIKE 'PA-%' 
     AND FM.StatusID IN (2,4,5,10,11,14,15,18) 

UNION ALL 

SELECT FM.FileNumber AS FileNumber, 
     ISNULL(IU.TEAMNAME,'') AS Closer, 
     dbo.GetLocalDateTimeFunc(FM.ActualSettlementDate) AS Scheduled, 
     dbo.GetLocalDateTimeFunc(FM.DisbursementDate) AS DisbursementDate, 
     dbo.GetLocalDateTimeFunc(FM.EstSettlementDate) AS EstSettlementDate, 
     CASE WHEN EXISTS (SELECT * FROM FilePartnerRel FPR1 
     WHERE FPR1.PartnerTypeID = 10033 AND FPR1.FileID = FM.FileID) 
     THEN P.State+'-(W)' 
     ELSE P.State END AS State, 
     ISNULL(P.StreetNumber,'')+' '+ISNULL(P.StreetDirection,'')+' '+ISNULL(P.StreetName,'')+' '+ISNULL(P.Unit,'')AS PropertyAddress, 
     S.Name, 
     (SELECT CONVERT(varchar(7000),Body) FROM Note WHERE NoteID = 
     (Select MAX(N.NoteID) 
     FROM Note N 
     JOIN FileActions A1 ON A1.FileID=FM.FileID 
     AND A1.ActionDefID IN (141,386,306) 
     JOIN FileActionNoteRel AN ON AN.FileActionsID=A1.FileActionsID 
     AND N.NoteID = AN.NoteID)) AS Note, 
     (SELECT COUNT(DISTINCT FA1.FileID) FROM FileActions FA1 
     JOIN FileMain FM1 ON FM1.FileID = FA1.FileID 
       AND FM1.FileNumber NOT LIKE 'PA-%' 
     JOIN Coordinator C1 ON C1.FileID = FA1.FileID 
     AND C1.CoordinatorTypeID IN (2, 6) 
     AND C1.CoordinatorID = C.CoordinatorID 
     WHERE FA1.ActionDefID IN (61,315,393) 
     AND FA1.ReceivedDate >= @PPMonth 
     AND FM1.StatusID != 8), 
     (SELECT COUNT(DISTINCT FA1.FileID) FROM FileActions FA1 
     JOIN FileMain FM1 ON FM1.FileID = FA1.FileID 
       AND FM1.FileNumber NOT LIKE 'PA-%' 
     WHERE FA1.ActionDefID IN (61,315,393) 
     AND FA1.ReceivedDate >= @PPMonth 
     AND FM1.StatusID != 8) AS TotalDisb 
     , TRT.Name CurativeItem 
     , SD.CommitmentEffDate 
FROM  FileMain FM 
JOIN  ActionListTransactionType ALTT ON ALTT.ActionListTransactionTypeID = FM.ActionListTransactionTypeID 
JOIN  ActionListProductType ALPT ON ALPT.ActionListProductTypeID = FM.ActionListProductTypeID 
JOIN  Coordinator C ON C.FileID = FM.FileID 
      AND C.CoordinatorTypeID IN (2) 
LEFT JOIN FilePartnerRel FPR ON FPR.FileID = FM.FileID 
      AND FPR.PartnerTypeID = 5 
JOIN  Property P ON P.FileID = FM.FileID 
LEFT JOIN PartnerCompany PC ON PC.PartnerCompanyID = FPR.PartnerCompanyID 
JOIN  PartnerCompany PC1 ON PC1.PartnerCompanyID = FM.ClientID 
JOIN  TEAM IU ON IU.TEAMID = C.CoordinatorID 
JOIN  Status S ON S.StatusID = FM.StatusID 
LEFT JOIN TitleReview TR ON TR.FileID = Fm.FileID 
      AND (TR.InternalClear IS NULL OR TR.InternalClear = 0) 
LEFT JOIN TitleReviewType TRT ON TRT.TitleReviewTypeID = TR.TitleReviewTypeID 
LEFT JOIN SearchData SD ON SD.FileID = FM.FileID 

WHERE FM.OfficeID = 1 
     AND FM.FileNumber NOT LIKE 'PA-%' 
     AND FM.StatusID IN (2,4,5,10,11,14,15,18) 


GROUP BY  FM.FileNumber, 
     PC1.Name, 
     PC.Name, 
     ISNULL(IU.TEAMNAME,''), 
     ALTT.Name +': '+ALPT.DisplayName, 
     dbo.GetLocalDateTimeFunc(FM.ActualSettlementDate), 
     dbo.GetLocalDateTimeFunc(FM.DisbursementDate), 
     dbo.GetLocalDateTimeFunc(FM.EstSettlementDate), 
     FM.FileID, 
     P.State, 
     P.StreetNumber, 
     P.StreetDirection, 
     P.StreetName, 
     P.Unit, 
     S.Name, 
     FM.EstSettlementDate, 
     C.CoordinatorID, 
     TRT.Name, 
     SD.CommitmentEffDate 

回答

0

選項1:

添加一個硬編碼列查詢如下:

SELECT ... 
, 'StartDt' as Period 
From QUERY1 
UNION ALL 
SELECT ... 
, 'MTD' as Period 
FROM QUERY2 
UNION ALL 
SELECT ... 
, 'Pmonth' as Period 
FROM QUERY3 

然後我想補充的報告參數「@filter」(或任何你喜歡的名字)以'StartDt','MTD','Pmonth'等作爲其可用值。啓用多個值並確保它是文本參數。

然後設置報表的過濾器的每個部分,看是否「期間」列的篩選器的parameter.value匹配。

選項2:

如上所述添加報告參數@filter。 創建一個表變量並將由filter參數傳入的值插入到其中。

使用情況時,必須通過1或0回SSRS在最後一欄,代表部分是否應爲可見或不可見。

,Period = CASE 
WHEN 'StartDt' IN (SELECT * FROM @table) then 1 
ELSE 0 
END 

然後設置過濾器,以僅包括具有的1週期值數據,並相應地設置報表節的知名度。

+0

我看這是怎麼回事,但我有一個關於這個問題:我試圖讓他們每個人的計數不顧一切,如果我在看這一點,他們將不得不的選擇禁用某些功能。 –

+0

不一定。您仍應該能夠爲每個數據集填充一個帶有計數表達式的文本框。只要您沒有爲他們設置過濾器,他們應該獨立於其他可見性設置。 –