现在要做一个表,可以显示页面被点击的次数。数据表的结构如下Click_ID, Page_Name, Language
1 aa eng
2 bb eng
3 aa chn
4 cc chn
5 cc chn
6 cc chn老板要的看的效果是页面名 中文 英文
aa 1 1
bb 0 1
cc 3 0aa,bb,cc等页面有很多,所以得用动态的生成。一行就显示出页面名,中文点击,英文点击,我打算用gridview做,但是写出不来这种效果。1.后台绑定sql语名如果是select * from xxx的话,出来所有的表里的页面名就会都出来,可我只是要唯一的一个就可以.这个要怎么是只显示唯一的一个页面?
2.如果 sql 是用 select page_Name,count(*) from xxx group by (page_name), 页面倒是唯一了,但只能统计点击的总数,可是中文和英文要怎么分别统计出来?3. 我原来是想用 select * from xxx 把所以的内容都读出来,然后再内存里操作,分类和累加,但不知道要怎么写好。
1 aa eng
2 bb eng
3 aa chn
4 cc chn
5 cc chn
6 cc chn老板要的看的效果是页面名 中文 英文
aa 1 1
bb 0 1
cc 3 0aa,bb,cc等页面有很多,所以得用动态的生成。一行就显示出页面名,中文点击,英文点击,我打算用gridview做,但是写出不来这种效果。1.后台绑定sql语名如果是select * from xxx的话,出来所有的表里的页面名就会都出来,可我只是要唯一的一个就可以.这个要怎么是只显示唯一的一个页面?
2.如果 sql 是用 select page_Name,count(*) from xxx group by (page_name), 页面倒是唯一了,但只能统计点击的总数,可是中文和英文要怎么分别统计出来?3. 我原来是想用 select * from xxx 把所以的内容都读出来,然后再内存里操作,分类和累加,但不知道要怎么写好。
aa eng 3
aa chn 2
bb eng 4
bb chn 5 读到datatable中, 再在内存里处理一下
aa eng 3
aa chn 2
bb eng 4
bb chn 5 但我就是不知道怎么去在内存里怎么操作来变成老板要求的形式页面名 中文 英文
aa 1 1
bb 0 1
cc 3 0
(
Click_ID int,
Page_Name varchar(50) ,
[Language] varchar(50)
)
insert into #b
select 1,'aa','eng'
union all select 2,'bb','eng'
union all select 3,'aa','eng'
union all select 4,'cc','chn'
union all select 5,'cc','chn'
union all select 6,'cc','chn'delete #b
select * from #b
--页面名 中文 英文
--aa 1 1
--bb 0 1
--cc 3 0
select a.Page_Name as 页面名,Isnull(b.clickCount,0) as 中文,Isnull(c.clickCount,0)as 英文 from #b as a
left join (select Count(*) as clickCount,Page_Name,[Language] from #b group by Page_Name,[Language]) b
on a.Page_Name=b.Page_Name and a.[Language]='chn'
left join (select Count(*) as clickCount,Page_Name,[Language] from #b group by Page_Name,[Language]) c
on a.Page_Name=c.Page_Name and a.[Language]='eng'
group by a.Page_Name,b.clickCount,c.clickCount
left join (select Count(*) as clickCount,Page_Name,[Language] from #b group by Page_Name,[Language]) b
on a.Page_Name=b.Page_Name and a.[Language]='chn'
left join (select Count(*) as clickCount,Page_Name,[Language] from #b group by Page_Name,[Language]) c
on a.Page_Name=c.Page_Name and a.[Language]='eng'
group by a.Page_Name,b.clickCount,c.clickCount-----------------------
页面名 中文 英文
aa 0 2
bb 0 1
cc 3 0
方法1:select Page_Name,中文=0+case when Language=chn then 1 else 0 end,英文=0+case when Language=eng then 1 else 0 end from 表 group by Page_Name方法2select a.Page_Name,a.中文,b.英文 from (select Page_Name,count(*) as 中文 from 表 where Language=chn group by Page_Name) as a inner join (select Page_Name,count(*) as 英文 from 表 where Language=eng group by Page_Name) on a.Page_Name=b.Page_Name