| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 880 人关注过本帖
标题:[求助]请教大家一个关于视图的问题
只看楼主 加入收藏
lihaopoy
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-4-10
收藏
得分:0 
恩,谢谢大家的指点。
给了我很大的启示,我已经知道问题在哪了,谢谢啊。

2006-04-10 14:09
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
以下是引用jiweida在2006-4-10 14:07:00的发言:
关键是确定不了啊。当RCODE确定时,RDATE和RDDM可能返回多个值,怎么处理呀?高手哥!!我想了半天也实现不了啊!

。。。

貌似这个表不是你要处理的表吧。人家的表里唯一确定也说不准啊

返回多值的情况根据自己的需求进行取舍就是了。


2006-04-10 14:21
lihaopoy
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-4-10
收藏
得分:0 
还是创建一个视图,包含的字段都在test1表中
test1表纪录了一些学员考试的信息。
表中的字段为:
Rcode Ryear Rmonth Rlb Rfs

Rcode 即学员编号,如“R001”,不是主键,不唯一
Ryear 和 Rmonth 为年和月,无关紧要。
Rlb 为考试类别,包含“语文,数学,英语,物理”
Rfs 为考试的分数。

现在我要创建一个视图,包含11个字段,前3个字段为 Rcode,Ryear,Rmonth.前面简单。
后面8个麻烦了。
分别是语文考试次数,总分,数学考试次数,总分,
英语考试次数,总分,物理考试次数,总分。

我写的代码如下:
create view v_test1
as
select Rcode,Ryear,Rmonth,Rlb,CRlb = count(Rlb),CRfs = sum(Rfs)
from test1
where Rcode = 'R001' and Ryear = 2006 and Rmonth = 3
group by Rcode,Ryear,Rmonth,Rlb

where 中的条件指定好了,不能更改。

我写的这个视图也能显示同样结果,但结果明显会有4行,即语文,数学,英语,物理分别一行,而且我这个视图只有6个字段,多了一个不必要Rlb,而CRlb = count(Rlb),CRfs = sum(Rfs)也不是按每一门写的聚合函数。

我的明显不合要求,所以我想请教一下,那后面8个字段该怎么写?是不是要用到子查询?

谢谢了啊:)

2006-04-10 16:02
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
用子查询做

2006-04-10 17:27
lihaopoy
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-4-10
收藏
得分:0 

斑竹,我想了很久,还是不能实现,
请斑竹说得详细一点啊。
谢谢拉。


2006-04-12 17:28
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 

拿那个经典SQL改了一下

declare @sql varchar(4000)
set @sql = 'select Rcode'
select @sql = @sql + ',sum(case Rlb when '''+Rlb+''' then Rfs end) ['+Rlb+']'+',count(case Rlb when '''+Rlb+''' then Rfs end) ['+Rlb+'受试数]'
from (select distinct Rlb from test1) as a
select @sql = @sql+' from test1 group by RCode'
exec(@sql)

可以在sp里看


2006-04-13 11:41
快速回复:[求助]请教大家一个关于视图的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024259 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved