I am interested in reporting value change in records from year to year (e.g. let me know if the value went down from last year). I written a query to do this -- and it works. BUT, knowing that I am no SQL guru, I was wondering if any of you could provide me with a BETTER or more "standard" way of approaching this problem. Please advise. Thanks.CREATE TABLE #ValueChange (pID INT, pYear INT,pValue INT)GOINSERT INTO #ValueChange SELECT 1,2001,70443 UNION ALL SELECT 1,2002,75474 UNION ALL SELECT 1,2003,78246 UNION ALL SELECT 1,2004,77271 UNION ALL SELECT 2,2001,70500 UNION ALL SELECT 2,2002,71000 UNION ALL SELECT 2,2003,72000 UNION ALL SELECT 2,2004,73000 DECLARE @year INTDECLARE @value INTSET @year = 2004SELECT cy.pID, cy.pValue AS CurrentValue, ly.pValue AS PreviousValue, (CAST((cy.pValue-ly.pValue) AS DECIMAL(9,0))/cy.pValue)*100 AS ChangeFROM (SELECT pID, pYear, pValue FROM #ValueChange WHERE pYear = @year AND pValue is not NULL AND pValue <> 0)cyINNER JOIN (SELECT pID, pYear, pValue FROM #ValueChange WHERE pYear = @year - 1 AND pValue is not NULL AND pValue <> 0)lyON cy.pID = ly.pIDWHERE (cy.pValue-ly.pValue) < 0