hi swood: here is my example: our pagevisit data is stored in a fact table querypagevisitdetail,for the sake of performance, we have some aggregate tables, for example the table sum_site. create table SUM_SITE ( ID INTEGER not null, PLATFORMID INTEGER not null, PV INTEGER, IPCOUNT INTEGER, VIEWERS INTEGER, SECLEN INTEGER, ACTIVITYTIME DATE default sysdate, ADMINID INTEGER, DATETYPE INTEGER, NEWGUESTS INTEGER, TYPE INTEGER, TYPEINF VARCHAR2(50), TOTALGUESTS NUMBER ) table SUM_SITE contains two dimension: platform and time. because of the column 'ipcount' is calculated by 'distinct count'. For time dimension,we summarizes different rows for each time level, distinguished by the column 'datetype'. For platform dimension, data is summarized into another table,sumpagevisit create table SUMPAGEVISIT ( ID VARCHAR2(32) not null, DATETYPE INTEGER, ACTIVITYTIME DATE, PV INTEGER, IPCOUNT INTEGER, VIEWERS INTEGER, SECLEN INTEGER, NEWGUESTS INTEGER, TOTALGUESTS INTEGER, SYSCREATE DATE ) Table SUMPAGEVISIT eliminates the dimesion platform, stands for the pagevisit data across all the platforms. Now you can see, to get correct measure value of column 'ipcount',we have to visit precomputed values from different tuples or different tables, but not from the rollup value. I'm reading the mondrian documentation for the aggregate table, for it may be a way to this situation. I don't know whether it can deal with our requirements, and until now I'm struggling throug the schema file for aggregate table. by the way, the forum's session timeout seems to be too short, my session timed out soon before i can post this message,(I finish it within half an hour), and I have to rewrite it again. would you like to set a longer timeout? Post edited by: chenq, at: 2007/06/27 05:45