在gridview上得到以下结果

fcxxfcxx 2009-03-17 09:22:32
谢谢大家!有这样一个表(语文>=85为优;语文<85而>=75为良;语文<60为差):
姓名 语文
甲 95
乙 45
丙 86
丁 77


在gridview上得到以下结果:
总人数 优的人数 良的人数 差的人数

4 2 1 1
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjcl521 2009-03-17
  • 打赏
  • 举报
回复


--先创建个表
create table test
(
name varchar(10),
score int

)
go

insert into test (name,score) values ('甲',95)
insert into test (name,score) values ('乙',45)
insert into test (name,score) values ('丙',86)
insert into test (name,score) values ('丁',77)
--用下面的SQL语句 试试看
select count(name) as 总人数,(select count(*) from test where score>85) as 优秀人数 ,
(select count(*) from test where score<85 and score>=75) as 良的人数,
(select count(*) from test where score<60 ) as 差的人数 from test
--接着就是绑定了
--呵呵献丑了
kbtjh 2009-03-17
  • 打赏
  • 举报
回复
帮忙顶一下
cppfaq 2009-03-17
  • 打赏
  • 举报
回复
如果已经取得数据到DataTable dt;
也可以:
DataRow[] you = dt.Select("语文 >= 85") ?? new DataRow[0];
DataRow[] liang = dt.Select("语文 < 85 and 语文 >=75") ?? new DataRow[0];
DataRow[] cha = dt.Select("语文 < 75") ?? new DataRow[0];
DataTable dtSummary = new DataTable();
dtSummary.Columns.Add("总人数");
dtSummary.Columns.Add("优");
dtSummary.Columns.Add("良");
dtSummary.Columns.Add("差");
dtSummary.Rows.Add(dt.Rows.Count, you.Length, liang.Length, cha.Length);
dataGridView1.DataSource = dtSummary;
  • 打赏
  • 举报
回复

create proc GetInfo
(
@AllPeople int , --所有的人数
@Actor int ,--成绩为优的
@Fine int ,--成绩为良的
@Bad int --成绩为差的
)
as
set @AllPeople=(select count(*) from 成绩表)
set @Actor=(select count(*) from 成绩表 where 成绩>=85) --也就是为优秀的
set @Fine=(select count(*) from 成绩表 where 成绩<85 and 成绩 >=75) --良
set @Bad=(select count(*) from 成绩表 where 成绩<60) --差
--创建临时表存储信息
create table #成绩汇总
(
AllPeople int,
Actor int,
Fine int,
Bad int
)
--插入信息
insert into #成绩汇总表(AllPeople,Actor,Fine,Bad) values(@allPeople,@Actor,@Fine,@Bad)
--查找信息
select * from #成绩汇总表


不需要output ,output是我实验的时候输出来看结果了的
fcxxfcxx 2009-03-17
  • 打赏
  • 举报
回复
能给点代码吗?
  • 打赏
  • 举报
回复

create proc GetInfo
(
@AllPeople int output, --所有的人数
@Actor int output,--成绩为优的
@Fine int output,--成绩为良的
@Bad int output--成绩为差的
)
as
set @AllPeople=(select count(*) from 成绩表)
set @Actor=(select count(*) from 成绩表 where 成绩>=85) --也就是为优秀的
set @Fine=(select count(*) from 成绩表 where 成绩<85 and 成绩 >=75) --良
set @Bad=(select count(*) from 成绩表 where 成绩<60) --差
--创建临时表存储信息
create table #成绩汇总
(
AllPeople int,
Actor int,
Fine int,
Bad int
)
--插入信息
insert into #成绩汇总表(AllPeople,Actor,Fine,Bad) values(@allPeople,@Actor,@Fine,@Bad)
--查找信息
select * from #成绩汇总表
fcxxfcxx 2009-03-17
  • 打赏
  • 举报
回复
能给点代码吗?
wuyq11 2009-03-17
  • 打赏
  • 举报
回复
还是通过存储过程和游标,建立临时表
fcxxfcxx 2009-03-17
  • 打赏
  • 举报
回复
有高手在吗?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧