查找2个日期之间的中间值

时间:2017-08-31 19:39:39

标签: sql sql-server reporting-services median

任何人都知道如何更改底部附近的总中位数以显示中位数的平均值?出于某种原因,总中位数始终为100.不确定我应该做什么。

提前感谢任何想法!目前的结果也在下面。

WITH CTE AS (
    SELECT DISTINCT c.CaseID AS CaseID,
        DATEDIFF(d, c.CaseAddDt, coip.DispoDt) AS DaysApart
    ,   DATEPART(month,c.CaseAddDt) AS [Month]
    ,   DATEPART(year,c.CaseAddDt) AS [Year]
    ,   CAST(DATEPART(year,c.CaseAddDt) AS varchar) + '|' + CASE WHEN DATEPART(month,c.CaseAddDt) IN (10,11,12) THEN CAST(DATEPART(month,c.CaseAddDt) AS varchar) ELSE '0' + CAST(DATEPART(month,c.CaseAddDt) AS varchar) END AS Srt
    FROM jw50_Case c
    JOIN jw50_CaseInvPers def ON def.CaseID = c.CaseID
    AND def.InvolveTypeMasterCode = 1
    JOIN
        jw50_CountInvPers coip ON coip.CaseID = c.CaseID
        AND coip.CaseInvPersID = def.CaseInvPersID
        AND coip.DispoCode IN ('CODE','CODE')  
        AND coip.CountNum > 0
    OUTER APPLY (
        SELECT TOP 1 caz.CaseAgencyID
        FROM jw50_CaseAgency caz
        WHERE caz.CaseID = c.CaseID
        AND caz.AgencyCode = 'ABC'
        AND caz.NumberTypeCode IN ('i#','in#')) caz
    WHERE
        EXISTS (SELECT 1 FROM jw50_CaseAttributes ca WHERE ca.CaseID = c.CaseID AND ca.CaseAttributeCode = 'oa7')
    AND caz.CaseAgencyID IS NOT NULL
    AND c.CaseStatusCode <> 'AAA'
    AND c.CaseAddDt BETWEEN '01/01/2017' AND '08/01/2017'
    AND c.CaseAddDt <= coip.DispoDt) 

SELECT a.CaseID,
    a.Month
,   a.Year
,   a.DaysApart
,   a.Srt
,   PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY a.DaysApart) OVER (PARTITION BY a.Month, a.Year) AS MonMedian
,   PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY a.DaysApart) OVER (PARTITION BY 1) AS TotalMedian
FROM CTE a

结果: Results Image

0 个答案:

没有答案