Home Forums SQL Server 2005 T-SQL (SS2K5) Query Help - difference between last and current year RE: Query Help - difference between last and current year

  • Give this a shot.

    ; with Year2010 AS (

    Select

    AREA,SRC

    ,case

    when DATE between '1/1/2010' AND getdate() THEN 'YTD 2010'

    when DATE between '1/1/2009' AND dateadd(yy,-1,getdate()) THEN 'YTD 2009'

    else 'Not Required'end AS PERIOD

    ,COUNT(distinct ACCOUNT_NO) as AC_Count

    fromdbo.Dim1 a

    where FILTER_CODE not in ('4','9','unknown')

    and DATE between '1/1/2010' AND getdate()

    group by

    AREA,SRC

    ,case

    when DATE between '1/1/2010' AND getdate() THEN 'YTD 2010'

    when DATE between '1/1/2009' AND dateadd(yy,-1,getdate()) THEN 'YTD 2009'

    else 'Not Required'end

    )

    , Year2009 AS (

    Select

    AREA,SRC

    ,case

    when DATE between '1/1/2010' AND getdate() THEN 'YTD 2010'

    when DATE between '1/1/2009' AND dateadd(yy,-1,getdate()) THEN 'YTD 2009'

    else 'Not Required'end AS PERIOD

    ,COUNT(distinct ACCOUNT_NO) as AC_Count

    fromdbo.Dim1 a

    where FILTER_CODE not in ('4','9','unknown')

    and DATE between '1/1/2009' AND dateadd(yy,-1,getdate())

    group by

    AREA,SRC

    ,case

    when DATE between '1/1/2010' AND getdate() THEN 'YTD 2010'

    when DATE between '1/1/2009' AND dateadd(yy,-1,getdate()) THEN 'YTD 2009'

    else 'Not Required'end

    )

    SELECT

    Year2010.

    ,

    Year2010.[SRC],

    Year2010.[AC_COUNT][AC_COUNT YTD2010],

    Year2009.[AC_COUNT][AC_COUNT YTD2009],

    Year2010.[AC_COUNT] - Year2009.[AC_COUNT] AS [CountDifference]

    FROM Year2010

    INNER JOIN Year2009

    ON Year2010.AREA = Year2009.AREA

    AND Year2010.SRC =Year2009.SRC

    --AND Year2010.PERIOD=Year2009.PERIOD

    Converting oxygen into carbon dioxide, since 1955.