Расхождение между результатами T-SQL и SSRS - PullRequest
0 голосов
/ 15 июня 2019

Я создал следующий код в T-SQL (см. Ниже). Он хорошо работает в среде SSMS, но, когда я публикую его в SSRS (Службы Reporting Services), числа для [Всего] и [Завершено] поля в SSRS сильно отличаются от полей в SSMS - намного выше, чем в SSMS

Это мой код:

     USE [WH]
     GO

       DECLARE @MonthBOP date = '05-01-2019'
       DECLARE @MonthEOP date = '05-01-2019'
       DECLARE @EHRRegionsWHID int = -1
       DECLARE @EHRProgramsWHID int = -1
       DECLARE @EHRProgramTypesWHID int = -1


    SELECT        
          ehrrgn.WHID AS [EHRRegionWHID] 
        , ehrrgn.EHRRegion 
        , ehrprgtype.WHID AS [EHRProgramTypeWHID] 
        , ehrprg.WHID AS [EHRProgramWHID]
        , ehrprg.EHRProgramCode
        , ehrprg.EHRProgramName 
        , poswh.WHID AS [PositionWHWHID]
        , poswh.PositionNameWH
        , posfamwh.WHID AS [PositionFamilyWHWHID]
        , posfamwh.PositionFamilyNameWH
        , pos.WHID AS [PositionWHID]
        , empl.EmployeeCode
        , empl.EmployeeName
        , ct.ServiceDate
        , dd.YearMonthSort
        , ct.StaffFK
        , COUNT(ct.ServiceFK) AS [Completed]
        , tt.Total

   FROM          
       Fact.EHRClinicalTransaction ct
       INNER JOIN Dimension.EHRProgram ehrprg ON 
                       ct.ProgramFK = ehrprg.WHID

       INNER JOIN Dimension.EHRRegion ehrrgn ON 
                       ehrprg.EHRRegionFK = ehrrgn.WHID

       INNER JOIN Dimension.EHRProgramType ehrprgtype ON 
                       ehrprg.EHRProgramTypeFK = ehrprgtype.WHID

       INNER JOIN Dimension.EHRStaff ehrstf ON ct.StaffFK = ehrstf.WHID 

       INNER JOIN Dimension.PaycomEmployee empl ON 
                       ehrstf.PaycomEmployeeFK = empl.WHID

       INNER JOIN Dimension.PaycomPosition pos ON 
                       empl.PaycomPositionFK = pos.WHID

       INNER JOIN Dimension.PaycomPositionWH poswh ON 
                       pos.PositionWHFK = poswh.WHID

       INNER JOIN Dimension.PaycomPositionFamilyWH posfamwh ON 
                       pos.PositionFamilyWHFK = posfamwh.WHID

       INNER JOIN Dimension.[Date] dd ON ct.ServiceDate = dd.[Date]

       INNER JOIN 
                ( 
                 SELECT 
                       ct.[StaffFK] 
                      ,COUNT(ct.[ServiceFK]) AS [Total]

                 FROM 
                     Fact.EHRClinicalTransaction ct
                     INNER JOIN Dimension.EHRProgram ehrprg ON 
                                      ct.ProgramFK = ehrprg.WHID 
                     INNER JOIN Dimension.EHRRegion ehrrgn ON 
                                    ehrprg.EHRRegionFK = ehrrgn.WHID
                     INNER JOIN Dimension.EHRProgramType ehrprgtype ON 
                             ehrprg.EHRProgramTypeFK = ehrprgtype.WHID
                     INNER JOIN Dimension.EHRStaff ehrstf ON 
                            ct.StaffFK = ehrstf.WHID 
                     INNER JOIN Dimension.PaycomEmployee empl ON 
                            ehrstf.PaycomEmployeeFK = empl.WHID
                     INNER JOIN Dimension.PaycomPosition pos ON 
                            empl.PaycomPositionFK = pos.WHID
                     INNER JOIN Dimension.PaycomPositionWH poswh ON 
                            pos.PositionWHFK = poswh.WHID
                 INNER JOIN Dimension.PaycomPositionFamilyWH posfamwh ON 
                            pos.PositionFamilyWHFK = posfamwh.WHID
                 INNER JOIN Dimension.[Date] dd ON 
                            ct.ServiceDate = dd.[Date]

              WHERE
                    (ct.[ServiceDate] BETWEEN @MonthBOP AND @MonthEOP) 
               AND ((ehrrgn.WHID IN (@EHRRegionsWHID)) OR 
                    (-1 IN (@EHRRegionsWHID))) AND (ehrrgn.WHID <>-1)
               AND ((ehrprg.WHID IN (@EHRProgramsWHID)) OR 
                    (-1 IN (@EHRProgramsWHID))) AND (ehrprg.WHID <>-1)
               AND ((ehrprgtype.WHID IN (@EHRProgramTypesWHID)) OR 
               (-1 IN (@EHRProgramTypesWHID))) AND (ehrprgtype.WHID <>-1)

           GROUP BY
                  ct.[StaffFK] 

             ) tt ON  ct.StaffFK = tt.StaffFK

  WHERE        
       (ct.IsNoShow = 0) 
  AND (ct.IsDeleted = 0)
  AND (ct.[ServiceDate] BETWEEN @MonthBOP AND @MonthEOP) 
  AND ((ehrrgn.WHID IN (@EHRRegionsWHID)) OR (-1 IN (@EHRRegionsWHID))) 
  AND (ehrrgn.WHID <>-1)
  AND ((ehrprg.WHID IN (@EHRProgramsWHID)) OR (-1 IN (@EHRProgramsWHID))) 
  AND (ehrprg.WHID <>-1)
  AND ((ehrprgtype.WHID IN (@EHRProgramTypesWHID)) OR 
       (-1 IN (@EHRProgramTypesWHID))) AND (ehrprgtype.WHID <>-1)
   AND (ct.ServiceFK NOT IN (1, 19, 31, 49, 64, 83, 85, 86, 87, 111, 131, 
                             133, 134, 137, 139, 
        140, 141, 165, 167, 168, 171, 173, 174, 175, 198, 436, 442, 443, 
                          503, 522, 540, 541))

 GROUP BY 
          ehrrgn.WHID 
        , ehrrgn.EHRRegion 
        , ehrprgtype.WHID  
        , ehrprg.WHID 
        , ehrprg.EHRProgramCode
        , ehrprg.EHRProgramName 
        , poswh.WHID 
        , poswh.PositionNameWH
        , posfamwh.WHID 
        , posfamwh.PositionFamilyNameWH
        , pos.WHID 
        , empl.EmployeeCode
        , empl.EmployeeName
        , ct.ServiceDate
        , dd.YearMonthSort
        , ct.StaffFK 
        , tt.Total

Почему в SSRS они перепрыгнулитак высоко?

Вот мой SSRS "Дизайн":

enter image description here

А вот пример результата в SSRS: Хотя этичисла (обведены красным кружком) настолько высоки, что они очень малы (и правильны после аудита) в SSMS (t-sql): enter image description here

Пожалуйста, помогите или посоветуйте!

PS - Вы можете нажать на картинку, чтобы увеличить

...