当前位置:首页 > 开发 > 数据库 > 正文

造假的周数。并去除重复的记录

发表于: 2011-03-27   作者:alafqq   来源:转载   浏览:
摘要: 遇见个周报的问题;   情况是这样的。数据库有3条记录,分别是 23周之前的,2周之前的,4周之前的。 现在要用最久的时间,获取数据,并修复确实的时间段。 然后显示原来存在的。和不存在的。     代码先取得   CREATE OR REPLACE VIEW V_BB_35ZCOUNT AS SELECT S."T1&qu

遇见个周报的问题;

 

情况是这样的。数据库有3条记录,分别是 23周之前的,2周之前的,4周之前的。

现在要用最久的时间,获取数据,并修复确实的时间段。

然后显示原来存在的。和不存在的。

 

 

代码先取得

 

CREATE OR REPLACE VIEW V_BB_35ZCOUNT AS

SELECT S."T1",S."T2",S."T3",S."T4",S."ZID",(TRUNC(SYSDATE, 'D') -

                (SELECT TRUNC(MIN(TO_DATE(F1.T1,'YYYY-MM-DD')), 'D')

                    FROM V_BB_35ZHOUBAO F1

                   WHERE F1.ZID = S.ZID)) / 7 ZCOUNT,

                   COUNT(*) OVER (PARTITION  BY ZID) SCOUNT,

                   min(TO_DATE(T1,'YYYY-MM-DD')) OVER (PARTITION  BY ZID) mindate

                   FROM V_BB_35ZHOUBAO S; 

 

这是取得全部记录。 但是这里得到的是假数据。是最久时间段之后的假数据;

 

1 2010-02-18 2010-02-15~2010-02-21 已报 查看 100798 58 1 2010-2-18

2 2011-01-14 2011-01-10~2011-01-16 已报 查看 110463 12 3 2011-1-7

3 2011-01-27 2011-01-24~2011-01-30 已报 查看 110463 12 3 2011-1-7

4 2011-01-07 2011-01-03~2011-01-09 已报 查看 110463 12 3 2011-1-7

5 2010-01-01 2009-12-28~2010-01-03 已报 查看 14521 65 1 2010-1-1

6 2011-01-14 2011-01-10~2011-01-16 已报 查看 40240088 12 3 2011-1-7

7 2011-01-27 2011-01-24~2011-01-30 已报 查看 40240088 12 3 2011-1-7

 

包括 存在记录,缺少的最大数量。

 

然后在此视图上继续 建立;

 

CREATE OR REPLACE VIEW V_BB_35ZZCOUNT AS

select k,decode(col2.t1,null,col1.t1,col2.t1) t1,

        col1.t2,

        decode(col2.t1,null,col1.t3,col2.t3) t3,col1.t4,col1.zid

 from (

 

SELECT 101-lv k,'/' t1, 

to_char(to_date(substr(t2,0,10),'yyyy-mm-dd')+7*(100-lv),'yyyy-mm-dd')||'~'|| 

to_char(to_date(substr(t2,12,22),'yyyy-mm-dd')+7*(100-lv),'yyyy-mm-dd')  t2

 ,'未填报' t3,t4,zid

  FROM ( 

  --取得最久值

  select * from V_BB_35ZCOUNT where t1=to_char(mindate,'yyyy-mm-dd')

 

  ), (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 100)

WHERE (101-zcount) <= lv /*and zid ='73047' */) col1 , V_BB_35ZCOUNT col2

where col1.t2=col2.T2(+) 

and col1.zid=col2.zid(+) 

 

重新和原来的 数据表连接,取得到 原来存在的数据;

 

造假的周数。并去除重复的记录

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号