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

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

发表于: 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

    震惊

    震惊

编辑推荐
记得之前做项目的时候,想实现一个功能,就是让多个对象保存到前端js的Array中,且保存的内容不能重
对一个JS数组去除重复项方法很多,但以前写的总是有些问题,譬如包含不同类型数据项无法删除,查了
对一个JS数组去除重复项方法很多,但以前写的总是有些问题,譬如包含不同类型数据项无法删除,查了
create table tt ( id int identity(1,1) primary key, name varchar(50) , date datetime , ) inse
最近快过年了,来了一个紧急任务,加班加点的一周,终于上线了。也没多少时间去研究出去重复数据的
查询重复记录和删除重复记录 CREATE table ts ( id int(11) not null UNIQUE, pcode int(11) defaul
第一种,数据全部重复,如下图: 需要得到以下的结果: 删除重复的记录(重复记录保留1条),可以按
一、表user信息如下: 二、要求如下: 删除字段name和tel相同的记录 三、SQL编写如下: 说明:在ora
在进行文本文件的处理时,有时需要从已经分组的数据中去除重复的行,当文件较大无法放入内存时会更
文件,包含的内容如下: 去除重复列结果如下: 方法:awk '{for(i=1;i<=NF;i++)a[$i,NR]++}{for(
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号