| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 978 人关注过本帖
标题:大家帮我看下这个SQl语句怎么写?
收藏  订阅  推荐  打印
tomtory
Rank: 4
等级:高级会员
帖子:713
积分:7588
来自:重庆
注册:2008-6-12

select A.员工ID,A.姓名+B.地址 from @A A inner join @B B on A.员工ID=B.员工ID  group by A.员工ID,A.姓名+B.地址
2008-7-9 09:57
青格儿
Rank: 4
等级:高级会员
帖子:516
积分:6134
威望:2
注册:2007-7-31

很感谢你回复我的贴子,帮我解决问题,可是你试了吗?你试试就知道了,出来的结果不是:
1   小张 小张地址1,小张地址2
3   小王 小王地址1,小王地址2
……

group by ,order by  我都试过,根本就不行啊!!
2008-7-9 10:33
青格儿
Rank: 4
等级:高级会员
帖子:516
积分:6134
威望:2
注册:2007-7-31

DECLARE @A TABLE(员工ID INT,姓名 char(16), 部门 varchar(50), 薪水 decimal(10,2))
INSERT INTO @A
SELECT 1,'小张','网络部',2500 UNION ALL
SELECT 2,'小李','市场部',3000 UNION ALL
SELECT 3,'小王','网络部',3000 UNION ALL
SELECT 4,'小周','市场部',2500 UNION ALL
SELECT 5,'新文秘','临时工',1000

declare @B table(员工ID int,地址 nvarchar(50),电话 char(13))

insert into @B
select 1,'小张的地址1','小张的电话1' union all
select 1,'小张的地址2','小张的电话2' union all
select 3,'小王的地址1','小王的电话1' union all
select 3,'小王的地址2','小王的电话2' union all
select 6,'前文秘的地址','前文秘的电话'

select A.员工ID,A.姓名+B.地址 from @A A inner join @B B on A.员工ID=B.员工ID  group by A.员工ID,A.姓名+B.地址

你把这些代码全放在查询分析器里运行一下,你就知道了。这样真得不行。
2008-7-9 10:35
tomtory
Rank: 4
等级:高级会员
帖子:713
积分:7588
来自:重庆
注册:2008-6-12

我晕  看到了  知道原因了

你查询的第二个字段  A.姓名+B.地址

这个是不能聚合的  里面的值不一样

[ 本帖最后由 tomtory 于 2008-7-9 11:59 编辑 ]
2008-7-9 10:59
tomtory
Rank: 4
等级:高级会员
帖子:713
积分:7588
来自:重庆
注册:2008-6-12

1    小张              小张的地址1
1    小张              小张的地址2
3    小王              小王的地址1
3    小王              小王的地址2


这是查询出来的值

但是后面那个字段里面的值 是聚合不了得
你的地址那条信息始终不一样的啊!!
2008-7-9 11:01
tomtory
Rank: 4
等级:高级会员
帖子:713
积分:7588
来自:重庆
注册:2008-6-12

嘿嘿
看到你要的功能了 呵呵

这样啊
1   小张 小张地址1,小张地址2
3   小王 小王地址1,小王地址2

好像  在SQL里面是不能完成的吧
你这样查出来肯定是两条数据  
然后在sql里面是没有数组的
你只有在程序里面完成了
2008-7-9 12:03
青格儿
Rank: 4
等级:高级会员
帖子:516
积分:6134
威望:2
注册:2007-7-31

原来SQL真得不能完成啊!其实我的是三个表(为了好写点,我发贴子时改成了两个表,我想也许这样会好实现点,没想到还是实现不了?)

我要显示UserInfo在一个GridView里,其中有一列要求显示每个用户所有的角色。我没办法,用了最笨的方法,先绑定了两个表,最后又遍历了Gridview所有行,又绑定了第三个表才实现了我要的效果。但是我觉得遍历了Gridview所有行这次效率太低了吧,就没有别的办法了吗?
2008-7-10 09:23
jxyga111
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:3992
积分:4307
威望:11
来自:中華人民共和國
注册:2008-3-21

改用臨時表吧

烈焰照耀世界,斌凍凍千萬裏
2008-7-11 17:25
青格儿
Rank: 4
等级:高级会员
帖子:516
积分:6134
威望:2
注册:2007-7-31

谢谢楼上的朋友。不太明白具体用临时表怎么做?能细说下吗?先谢谢了!

SQL这么强大,我想它可以查出来吧。也许也要游标吧?呵呵,游标我用得不好。不过,不论用什么只要是用SQL实现的就行。请各位高手帮帮我。
2008-7-14 09:53
共有 977 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054717 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved