目前单位有这样一个需求跟踪停机用户复机的情况比如说停机时间为20090501
那么就要跟踪他
20090502---20090802的复机情况想一天半没想出来表里字段有停机时间和复机时间 以及其他的维度
程序那边说SQL结果至少2700行数据也就是下面这个样子
20090501 20090502......20090601 --横20090502
20090503
20090504
20090505
20090506
.
.
.
.
20090802--纵
高人帮帮忙吧~ 能取到样式借我参考下就好~
那么就要跟踪他
20090502---20090802的复机情况想一天半没想出来表里字段有停机时间和复机时间 以及其他的维度
程序那边说SQL结果至少2700行数据也就是下面这个样子
20090501 20090502......20090601 --横20090502
20090503
20090504
20090505
20090506
.
.
.
.
20090802--纵
高人帮帮忙吧~ 能取到样式借我参考下就好~
可能我说的不是很明白刚才自己想了想 做出来了
SELECT NVL(STOP_DATE,'20090617'),NVL(B.AREA_ID,'-1'),'-1',NVL(CUST_TYPE,-1),B.DATE_ID,NVL(SUM(USER_NUM),0) FROM
(select ACCT_MONTH || ACCT_DAY STOP_DATE, --停机时间
ACCT_dATE CM_DATE, --复机时间
AREA_ID,
DECODE(CUST_GROUP,'10007','30','10003','20','10001','10','30') CUST_GROUP,
COUNT(*) USER_NUM
from NEW_DW.DW_CM_USER
WHERE ACCT_MONTH || ACCT_DAY='20090617'
AND ACCT_dATE>'20090617'
GROUP BY ACCT_MONTH || ACCT_DAY, ACCT_dATE, AREA_ID,CUST_GROUP) A,(SELECT * FROM telecomdmcode.dmcode_stop_cm_user, TELECOMDMCODE.DMCODE_AREA,TELECOMDMCODE.DMCODE_CUST_TYPE
WHERE DATE_ID>'20090617'
AND DATE_ID<='20090917') B ----维度表防止丢维度 限定复机时间不能小于停机时间 并去90天
WHERE A.CM_DATE(+)=B.DATE_ID
AND A.AREA_ID(+)=B.AREA_ID
AND A.CUST_GROUP(+)=B.CUST_TYPE
GROUP BY STOP_DATE,B.AREA_ID,'-1',CUST_TYPE,B.DATE_ID