| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1387 人关注过本帖
标题:Select语句实现的一个问题
只看楼主 加入收藏
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

create table 社会团体(
编号 int,
名称 varchar(60),
负责人 varchar(20),
活动地点 varchar(500)
)

insert into 社会团体 values(1,'红十字会','李明','广州天河区')
insert into 社会团体 values(2,'养老院义工','陈强','广州各区')

create table 参加(
职工号 varchar(6),
编号 int,
参加日期 datetime)

insert into 参加 values('1001',1,'2007-10-5')
--1002的参加了两个团体
insert into 参加 values('1002',1,'2007-10-5')
insert into 参加 values('1002',2,'2007-10-5')

insert into 参加 values('1003',2,'2007-10-5')
insert into 参加 values('1005',1,'2007-10-5')
insert into 参加 values('1008',2,'2007-10-5')
insert into 参加 values('1009',1,'2007-10-5')
insert into 参加 values('1010',2,'2007-10-5')

create table 职工(
职工号 varchar(6),
姓名 varchar(20),
年龄 smallint,
性别 bit --1表示男,0表示女
)

insert into 职工 values('1001','李伟',37,1)
insert into 职工 values('1002','赵天',22,1)
insert into 职工 values('1003','王容',27,0)
insert into 职工 values('1004','叶茜',31,0)
insert into 职工 values('1005','唐蓎',30,0)
insert into 职工 values('1006','方文',24,0)
insert into 职工 values('1007','曾强',34,1)
insert into 职工 values('1008','李静',22,0)
insert into 职工 values('1009','李媚媚',25,0)
insert into 职工 values('1010','何一',30,1)

select a.职工号,a.姓名,a.年龄,性别=case when a.性别=1 then '男' else '女' end
from 职工 a,(select 编号 from 参加 where 职工号='1002') b,参加 c
where a.职工号=c.职工号 and b.编号=c.编号

drop table 社会团体,参加,职工



--查出1002加参的团体的所有职工..有什么问题?
/*
1009 李媚媚 25 女
1001 李伟 37 男
1002 赵天 22 男
1005 唐蓎 30 女
1010 何一 30 男
1002 赵天 22 男
1003 王容 27 女
1008 李静 22 女
*/


我的msn: myfend@
2007-11-11 20:51
aubblove
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2007-8-18
收藏
得分:0 
我想他的意思是查找到和1002号职工参加社会团体一样的职工有哪些?
假如说1002参加了红十字会,又参加了养老院义工,而1005也参加了红十字会和养老院义工,其他职工都只有参加一中社会团体,那么查询的结果应该只有1005,不知道这是不是楼主的意思,还是我也理解错了
2007-11-12 11:58
DasayHaoEr
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2007-11-6
收藏
得分:0 

给个建议,下次字段名最好用英文的,汉字看得头都大了!

2007-11-12 14:24
zhaozhiwei
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-7-19
收藏
得分:0 
嗯 就像12楼的说得差不多,但是不全。
就是说要是1002参加了1号,2号社团,那么就查询这样的职工:
这些职工必须参加了1,2号社团,可以多参加其他社团。例如,1001参加了1,2,3号社团。1003参加了1,2号社团,而1004只参加了1号社团,那么就查出1001,1003号职工,而没有1004号职工。
不知道这样表达你有没有清楚我的意思?
昨天断网了,上不了,不好意思啊……

择晴日,访友欢。无限天涯各一边,亲谊心相连。品美食,游山川。闲来无事灌论坛,幸福至年年。
2007-11-12 16:52
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
以下是引用DasayHaoEr在2007-11-12 14:24:34的发言:

给个建议,下次字段名最好用英文的,汉字看得头都大了!

纯英文的还算好看,要是拼音英文就更难看了.


Repeat  Life=Study;Until (death);
2007-11-12 21:54
aubblove
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2007-8-18
收藏
得分:0 

惭愧呀,我也不会,请教版主吧,帮你顶!!

2007-11-13 08:51
taotao7080
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2007-9-14
收藏
得分:0 
厉害~~

impossible is nothing ~
2007-11-15 10:48
快速回复:Select语句实现的一个问题
数据加载中...
 
   



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

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