| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1240 人关注过本帖
标题:怎么写SQL语句
只看楼主 加入收藏
23760639
Rank: 1
等 级:新手上路
帖 子:277
专家分:0
注 册:2005-5-13
收藏
 问题点数:0 回复次数:15 
怎么写SQL语句
王小明 tel
王小明 email
王小明 address

张亮 tel
张亮 email
张亮 address
我的表是这样的。我怎么办才能合并成这样的
王小明   tel, email, address
张亮    tel, email,address
然后用DATAGRID显示给用户看呢?
搜索更多相关主题的帖子: 张亮 SQL 语句 王小明 address 
2006-03-23 11:40
卜酷塔
Rank: 7Rank: 7Rank: 7
来 自:魅力青岛
等 级:禁止访问
威 望:39
帖 子:2569
专家分:0
注 册:2004-6-12
收藏
得分:0 

i don't know that what column name you are set!

select name ,tel ,email address

from table

group by name

have a try!

if you have any question please write on this!


觉得为时已晚的时候,恰恰是最早的时候。

2006-03-23 12:20
23760639
Rank: 1
等 级:新手上路
帖 子:277
专家分:0
注 册:2005-5-13
收藏
得分:0 
SQL语句问题

1. 行列转换--普通

假设有张学生成绩表(CJ)如下
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82

想变成
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82

我想做成这样的效果。不知道怎么弄,谢谢!

2006-03-24 08:34
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
偶现在能想起的有3种方法(游标不算,个人不喜欢用)

1.可以用case,然后sum一下

2.按照个人名字group by,后面用镶套子查询来把成绩选出来。

3.每个人的成绩选出后,用union all把结果拼起来

个人建议用第二种方法实现。

2006-03-24 11:47
Tailor
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2005-6-26
收藏
得分:0 

这是我看完了你的问题写的结果

--如果表已经存在,删除表
if exists (select * from sysobjects where id = OBJECT_ID('[Score]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [Score]
--创建一个表
CREATE TABLE [Score] ( [Name] [varchar] (10) NULL , [Subject] [varchar] (10) NULL , [Score] [int] NULL )
--向表中加入数据
INSERT [Score] ( [Name] , [Subject] , [Score] ) VALUES ( '张三' , '语文' , 80 )
INSERT [Score] ( [Name] , [Subject] , [Score] ) VALUES ( '张三' , '数学' , 90 )
INSERT [Score] ( [Name] , [Subject] , [Score] ) VALUES ( '张三' , '物理' , 85 )
INSERT [Score] ( [Name] , [Subject] , [Score] ) VALUES ( '李四' , '语文' , 85 )
INSERT [Score] ( [Name] , [Subject] , [Score] ) VALUES ( '李四' , '数学' , 92 )
INSERT [Score] ( [Name] , [Subject] , [Score] ) VALUES ( '李四' , '物理' , 82 )
--查看原表中的数据
select * from Score
--创建一个临时表,用于存放临时数据
Create Table #Score (姓名 Varchar(10),语文 int ,数学 int,物理 int)
--向表中插入姓名数据
insert into #Score(姓名) Select Distinct Name from Score
--更新语文数据
update #Score set #Score.语文=(select Score From Score where Score.Name=#score.姓名 and Score.Subject='语文')
--更新数学数据
update #Score set #Score.数学=(select Score From Score where Score.Name=#score.姓名 and Score.Subject='数学')
--更新物理数据
update #Score set #Score.物理=(select Score From Score where Score.Name=#score.姓名 and Score.Subject='物理')
--显示所得到的结果
Select * From #Score
--删除临时表
Drop Table #Score


你看一下是否符合你的要求,如果想要得到更好的结果,那就要用游标了,你先好好看一下吧.


2006-03-24 12:03
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
收藏
得分:0 
以下是引用23760639在2006-3-24 8:34:00的发言:

1. 行列转换--普通

假设有张学生成绩表(CJ)如下
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82

想变成
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82

我想做成这样的效果。不知道怎么弄,谢谢!

可以参考班主以前发的经典SQL
http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=24&ID=15174&page=7

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

那个是泛用的版本


2006-03-24 12:11
xqiang
Rank: 1
等 级:新手上路
帖 子:291
专家分:0
注 册:2006-2-23
收藏
得分:0 

要是我,我就重新再做一个表,呵呵


相信自己可以的!!! http://www.
2006-03-24 12:18
Tailor
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2005-6-26
收藏
得分:0 
谢谢卜酷塔了,高手呀

2006-03-24 13:58
23760639
Rank: 1
等 级:新手上路
帖 子:277
专家分:0
注 册:2005-5-13
收藏
得分:0 
能否详细指点下.谢谢!
'麻烦这位同仁能不能说得详细点啊。偶还是不明白!谢谢了!
2006-03-25 10:29
快速回复:怎么写SQL语句
数据加载中...
 
   



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

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