.NET ProgrammingDatabasesMicrosoft SQL Server 2008Microsoft SQL ServerSSRS
Last Comment
Mayank Tripathi
8/22/2022 - Mon
Pawan Kumar
Is Pivot fine with you??
;WITH CTE AS( SELECT * , ROW_NUMBER() OVER (PARTITION BY AdmisionType ORDER BY ReportDateKey) rnk FROM Report )SELECT AdmisionType , ISNULL(MAX([2]),0) [ADK], ISNULL(MAX([1]),0) [PreviousMonthADK] ,ISNULL(MAX([2]),0) + ISNULL(MAX([1]),0) YTDADK FROM CTEPIVOT ( MAX(Admints) FOR RNK IN ([1],[2]))tGROUP BY AdmisionType
WITH CTE_ADKAS ( SELECT AdmisionType, MAX(Admints) ADK FROM report GROUP BY AdmisionType ),CTE_PreviousMonthADKAS ( SELECT r.AdmisionType, r.Admints FROM report r WHERE r.YearMonth = ( SELECT CAST(CAST(r2.YearMonth AS INTEGER)-1 AS CHAR(6)) FROM report r2 INNER JOIN CTE_ADK ca ON r2.AdmisionType = ca.AdmisionType AND r2.Admints = ca.ADK WHERE r2.AdmisionType = r.AdmisionType ) )SELECT a.AdmisionType, a.ADK, p.Admints as PreviousMonthADK, a.ADK + p.Admints as YTDADKFROM CTE_ADK a INNER JOIN CTE_PreviousMonthADK p ON a.AdmisionType=p.AdmisionType
Open in new window