文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>报表格式,去除重复的记录

报表格式,去除重复的记录

时间:2010-09-24  来源:龙向何处

从数据库里查出的结果如下
  名称 大小 价格 厂家
  电视机 12 1200 海尔
  电视机 10 1000 长虹
  电视机 15 1500 康佳
  冰箱 12 1200 海尔
  冰箱 10 1200 康佳
  冰柜 100 2000 康佳
最后显示的结果要这样的:
  电视机
  12 1200 海尔
  10 1000 长虹
  15 1500 康佳
  冰箱
  12 1200 海尔
  10 1200 康佳
  冰柜
  100 2000 康佳

代码
if object_id('tempdb.dbo.#') is not null drop table #
create table #(名称 varchar(8), 大小 int, 价格 int, 厂家 varchar(8))
insert into #
select '电视机', 12, 1200, '海尔' union all
select '电视机', 10, 1000, '长虹' union all
select '电视机', 15, 1500, '康佳' union all
select '冰箱', 12, 1200, '海尔' union all
select '冰箱', 10, 1200, '康佳' union all
select '冰柜', 100, 2000, '康佳'

;
with t1 as
(
select id=dense_rank()over(order by 名称),* from #
),
t2
as
(
select distinct id, 0a, 名称 大小, ''价格,''厂家 from t1
union all
select id, 1, ltrim(大小), ltrim(价格), ltrim(厂家) from t1
)
select 大小, 价格, 厂家 from t2 order by id,a
/*
大小 价格 厂家
------------ ------------ --------
冰柜
100 2000 康佳
冰箱
12 1200 海尔
10 1200 康佳
电视机
12 1200 海尔
10 1000 长虹
15 1500 康佳
*/

;
with cte as
(
select id=row_number()over(order by getdate()), * from #
)
select 名称 = case id when (select min(id) from cte where 名称=t.名称) then 名称 else '' end, 大小, 价格, 厂家 from cte as t

/*
名称 大小 价格 厂家
-------- ----------- ----------- --------
电视机 12 1200 海尔
10 1000 长虹
15 1500 康佳
冰箱 12 1200 海尔
10 1200 康佳
冰柜 100 2000 康佳
*/

 

相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载