| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 943 人关注过本帖
标题:[求助]请教各位两个select查询语句问题。
只看楼主 加入收藏
r81222
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-19
收藏
 问题点数:0 回复次数:9 
[求助]请教各位两个select查询语句问题。

有下面一张表:
姓名 学科 成绩
张三 语文 85
张三 英语 90
张三 数学 95
李四 语文 80
李四 英语 95
李四 数学 90
王五 语文 90
王五 英语 80
王五 数学 100
查询上表要得到下面的查询结果
姓名 语文 英语 数学
张三 85 90 95
李四 80 95 90
王五 90 80 100
请各位大侠指教,要得到上面的查询结果要使用什么语句啊,在此多谢各位了。

还有下面一张表:
订单号 产品编号 产品名称 到货日期 进价
060101 c001 a 20060101 10.50
060101 c002 b 20060101 7.30
060101 c003 c 20060101 9.00
060102 c002 b 20060102 7.50
060102 c001 a 20060102 10.20
060103 c001 a 20060104 10.30
060103 c002 b 20060104 7.60
060104 c001 a 20060108 10.50
060104 c003 c 20060108 9.30
060105 c001 a 20060110 11.50
查询上表求出每种产品最近两次到货的进价,并且将到货日期转换成“yyyy-mm-dd”的格式。
请各位大侠指教,要得到上面的查询结果要使用什么语句啊,在此多谢各位了。本人邮箱:

r81222@163.com。如果可以的话,麻烦给我邮箱也发一份,也希望认识更多朋友。

搜索更多相关主题的帖子: 英语 数学 语句 select 李四 
2006-03-19 09:17
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
1.为了方便写语句,我把字段和表名自己定义了一下,你自己根据情况改吧

select distinct name 姓名
,
(select score
from students a
where course='语文'
and a.name=b.name) as 语文
,
(select score
from students a
where course='英语'
and a.name=b.name) as 英语
,
(select score
from students a
where course='数学'
and a.name=b.name) as 数学
from students b

2006-03-19 14:23
st285
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-3-12
收藏
得分:0 
select distinct姓名,语文,英语,数学 from 表名
2006-03-19 15:00
r81222
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-19
收藏
得分:0 
多谢二位了,还有下面那个,多谢各位了。
2006-03-19 18:10
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 

下面那个不用游标很麻烦(其实用游标也很烦),只要最近一次的进货情报不行么?


2006-03-19 21:06
rickfyy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-12-30
收藏
得分:0 
请问如果还要要在查询结果中求总成绩,该怎么写?
直接“语文+数学”好像不行啊
2006-03-20 11:51
自由震魂曲
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-3-10
收藏
得分:0 
select top 2 订单号,产品编号,产品名称,convert(smalldatetime,到货日期),进价 from 表名 where 产品名称 = 'a' order by 到货日期 desc
希望你用的到.日期后面有小时分钟秒(都是0),我去除不掉.因为转义不能定义日期型数据的长度,
b和c同理,不能用union all把结果合并,因为它不支持OYDER BY所以没有想到别的办法...第一次回贴呵呵~

[此贴子已经被作者于2006-3-20 11:55:37编辑过]


2006-03-20 11:51
自由震魂曲
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-3-10
收藏
得分:0 
以下是引用rickfyy在2006-3-20 11:51:00的发言:
请问如果还要要在查询结果中求总成绩,该怎么写?
直接“语文+数学”好像不行啊

select 语文+数学+英语 as 总分 from 表名 where 姓名=张三

[此贴子已经被作者于2006-3-20 12:02:28编辑过]


2006-03-20 12:01
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
要总分的话用哪个都可以,比如下面这个
select name as 姓名, sum(语文) as 语文,sum(数学) as 数学,sum(英语) as 英语, sum(语文)+sum(数学)+sum(英语) as 总分
from
(
select name,
case course when '语文' then score else 0 end as 语文,
case course when '数学' then score else 0 end as 数学,
case course when '英语' then score else 0 end as 英语
from students
) a
group by name
order by 总分 desc

你第二个如果限定要一个select句做的话太伤脑子了。你是自己做课题还是问题集里面的问题?自己做课题的话其实什么样都无所谓的。第一题你还可以在Excel力把数据直接抽出看数据透视表。

2006-03-20 22:06
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
一个select完工,自己看把,字段名自己对应去把,我实在不习惯用中文做字段名。顺便说一下,这个请求肯定不是最好的,只是一种思路而已。

select productnm as 货物名,
(select max(shpdte) from slip a where a.productnm=b.productnm)as 最新到货期,
(select price from slip c where shpdte=(select max(shpdte) from slip a where a.productnm=b.productnm) and c.productnm=b.productnm)as 最新到货价 ,
(select max(shpdte) from slip cc where not exists(select max(shpdte) from slip a group by productnm having a.productnm=cc.productnm and max(a.shpdte)=cc.shpdte) and cc.productnm=b.productnm ) 次新到货期,
(select price from slip d where shpdte=(select max(shpdte) from slip cc where not exists(select max(shpdte) from slip a group by productnm having a.productnm=cc.productnm and max(a.shpdte)=cc.shpdte) and cc.productnm=b.productnm )and d.productnm=b.productnm)as 次新到货价
from slip b
group by productnm


2006-03-20 22:29
快速回复:[求助]请教各位两个select查询语句问题。
数据加载中...
 
   



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

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