.net 筆記

學習.net
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

取出表中重复数据

Posted on 2008-04-14 16:08  陳偉  阅读(165)  评论(0)    收藏  举报
--tb(投标企业,招标序号,类别,产品名称,计价单位,方法,试剂规格,别名,包装份数,牌价,
--
质量层次,生产企业,注册证号,注册证有效期,原报价,总价,报价备注)

--要求 产品名称,计价单位,方法,质量层次 这四个字段数据重复的取出来
--
(不重复的放一张表 重复一个的放一张表 重复两个以上的放一张表)


----------------------------------------------------------------------------------------------------------------------------------
select  *  from dbo.Sheet1$ a inner join
(
select  count(*as num,产品名称,计价单位,方法,质量层次 from dbo.Sheet1$ 
group by 产品名称,计价单位,方法,质量层次 )b
on 
a.产品名称
=b.产品名称 and a.计价单位=b.计价单位 and a.方法=b.方法 and a.质量层次=b.质量层次 and b.num>2
order by  b.num

---------------------------------------------------------------------------------------------------------------------------------------
select * from dbo.Sheet1$ a
where not exists (
  
select 1 from dbo.Sheet1$
  
where 产品名称=a.产品名称  and 方法=a.方法 and 质量层次=a.质量层次 and 生产企业=a.生产企业
  )

--重复一个的放一张表 
select * from dbo.Sheet1$ a
where (
  
select count(1from dbo.Sheet1$
  
where 产品名称=a.产品名称  and 方法=a.方法 and 质量层次=a.质量层次 and 生产企业=a.生产企业                                            --没说明主键
  )=1

select * from dbo.Sheet1$ a
where (
  
select count(1from dbo.Sheet1$
  
where 产品名称=a.产品名称  and 方法=a.方法 and 质量层次=a.质量层次 and 生产企业=a.生产企业
                                            
--没说明主键
  )=2

select * from dbo.Sheet1$ a
where (
  
select count(1from dbo.Sheet1$
  
where 产品名称=a.产品名称  and 方法=a.方法 and 质量层次=a.质量层次 and 生产企业=a.生产企业
                                            
--没说明主键
  )>2

select * from dbo.Sheet1$
------------------------------------------------------------------------------------------------------------------------------------------