does this solution work for your case?
q)t:([]date:20?2011.03.01+til 10;uid:20?17000+til 10;sym:20?50000+til 15)
q)7#t
date uid sym
----------------------
2011.03.09 17008 50001
2011.03.02 17003 50000
2011.03.01 17004 50000
2011.03.08 17001 50010
2011.03.04 17006 50001
2011.03.04 17004 50010
2011.03.07 17004 50007
q)updCols:{`$string[x],\:string[y]}
q)prevCols:{if[x=0;:`date`uid`sym]; updCols[;x] `prevdate`prevuid`prevsym}
q)f:{![x;();0b;prevCols[y]!(prev;) each prevCols y-1]}
q)7#f/[t;1+til 6]
date uid sym prevdate1 prevuid1 prevsym1 prevdate2 prevuid2 prevsym2 prevdate3 prevuid3 prevsym3 prevdate4 prevuid4 prevsym4 prevdate5 prevuid5 prevsym5 prevdate6 prevuid6 prevsym6
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2011.03.09 17008 50001
2011.03.02 17003 50000 2011.03.09 17008 50001
2011.03.01 17004 50000 2011.03.02 17003 50000 2011.03.09 17008 50001
2011.03.08 17001 50010 2011.03.01 17004 50000 2011.03.02 17003 50000 2011.03.09 17008 50001
2011.03.04 17006 50001 2011.03.08 17001 50010 2011.03.01 17004 50000 2011.03.02 17003 50000 2011.03.09 17008 50001
2011.03.04 17004 50010 2011.03.04 17006 50001 2011.03.08 17001 50010 2011.03.01 17004 50000 2011.03.02 17003 50000 2011.03.09 17008 50001
2011.03.07 17004 50007 2011.03.04 17004 50010 2011.03.04 17006 50001 2011.03.08 17001 50010 2011.03.01 17004 50000 2011.03.02 17003 50000 2011.03.09 17008 50001