Hi <BR>I have written code to output the total of a column for each quater of the year. It has a final output of each total for each quarter of the present year. My problem now is that I have to alter this s it is on a rolling basis. si I have to put out the totals for the last 4 quarters i.e. if it is currently q2 in year 2003 I need to output the totals for q2 2003, q1 2003 , q4 2002, q3 2002 and so on if the quarter moves into the next phase. I am having trouble trying to get my head round this. Would a database be the best solution and if it is how am I goin to have it so the page is only run every quarter to insert the latest figures into the database. <BR>Here is my current code for finding the totals for each quarter of the current year. I hope you understand my problem. Cheers<BR><BR>dim mthh, passArray(11), failArray(11), passWithConditionsArray(11), highRiskArray(11), mediumRiskArray(11), lowRiskArray(11)<BR> Yr=right(date(),4)<BR> <BR> &#039;The current month variable is used to draw the charts up to the present month<BR> currentMth = Month(Date)<BR> <BR> <BR> for mthh = 1 to currentMth<BR><BR> SQLSelManagement ="SELECT (SELECT count(projManagement) FROM [DAT] where projManagement = &#039;Pass&#039; and Month(projDate) = &#039;"& mthh &"&#039; and Year(projDate) = &#039;"& Yr &"&#039;) AS NumberPassed, " &_<BR> "(SELECT count(projManagement) FROM [DAT] where projManagement = &#039;Fail&#039; and Month(projDate) = &#039;"& mthh &"&#039; and Year(projDate) = &#039;"& Yr &"&#039;) AS NumberFailed, " &_ <BR> "(SELECT count(projManagement) FROM [DAT] where projManagement = &#039;Pass With Conditions&#039; and Month(projDate) = &#039;"& mthh &"&#039; and Year(projDate) = &#039;"& Yr &"&#039;) AS NumberPassedWithConditions;" <BR> <BR> output.CursorType = 1<BR> output.Open SQLSelManagement, oServer<BR> <BR> &#039;Response.Write "Month " & mthh & " Pass Rate is :"& output("NumberPassed") & "<BR>"<BR> passArray(mthh-1)=output("NumberPassed")<BR> &#039;Response.Write "Month " & mthh & " Fail Rate is :"& output("NumberFailed") & "<BR>"<BR> failArray(mthh-1)=output("NumberFailed")<BR> &#039;Response.Write "Month " & mthh & " Pass With Conditions Rate is :"& output("NumberPassedWithConditions")& "<BR>"<BR> passWithConditionsArray(mthh-1)=output("NumberPassedWithConditions")<BR> <BR> output.close<BR> next<BR> &#039;Calculating the Pass rate etc. for each quater <BR> firstQuaterPasses=passArray(0)+passArray(1)+passAr ray(2)<BR> secondQuaterPasses=passArray(3)+passArray(4)+passA rray(5)<BR> thirdQuaterPasses=passArray(6)+passArray(7)+passAr ray(8)<BR> fourthQuaterPasses=passArray(9)+passArray(10)+pass Array(11)<BR> <BR> firstQuaterPassWithConditions= passWithConditionsArray(0)+passWithConditionsArray (1)+passWithConditionsArray(2)<BR> secondQuaterPassWithConditions= passWithConditionsArray(3)+passWithConditionsArray (4)+passWithConditionsArray(5)<BR> thirdQuaterPassWithConditions= passWithConditionsArray(6)+passWithConditionsArray (7)+passWithConditionsArray(8)<BR> fourthQuaterPassWithConditions= passWithConditionsArray(9)+passWithConditionsArray (10)+passWithConditionsArray(11)<BR> <BR> firstQuaterFails=failArray(0)+failArray(1)+failArr ay(2)<BR> secondQuaterFails=failArray(3)+failArray(4)+failAr ray(5)<BR> thirdQuaterFails=failArray(6)+failArray(7)+failArr ay(8)<BR> fourthQuaterFails=failArray(9)+failArray(10)+failA rray(11)<BR>