
select 职工号,姓名
from 职工
where 职工号 in (select 职工号
from 参加
where 编号 in (select 编号
from 社会团体
where 名称='唱歌'))
select 名称
from 社会团体
where 编号 in (select 编号
from 参加
where 职工号='1001')
select count(名称) as 参加人数 ,名称 from 社会团体,参加 where 社会团体编号=参加编号 group by 名称
create view shitu as
select 职工职工号,姓名,社会团体编号,名称,参加日期
from 职工,社会团体,参加 where 职工职工号=参加职工号 and 社会团体编号=参加编号 order by 职工职工号
1、某一位员工在指定时间段里每一天的最早和最迟打卡记录
select min(card_no) card_no,min(fname) fname,min(rec_dat) start_time,max(rec_dat) end_timefrom EV_LOG
where card_no='员工卡号' and evnt_descrp='Access granted'
and convert(varchar(10),rec_dat,120) between '2013-07-01' and '2013-07-16'
group by convert(varchar(10),rec_dat,120)
3、 所有员工在指定时间段里每一天的最早和最迟打卡记录
select card_no,min(fname) fname,min(rec_dat) start_time,max(rec_dat) end_timefrom EV_LOG
where evnt_descrp='Access granted'and
convert(varchar(10),rec_dat,120) between '2013-07-01' and '2013-07-16'
group by card_no,convert(varchar(10),rec_dat,120)
2和4就不写了,用datediff(hh,start_time,end_time)就可以了
--设职工社团数据库有三个基本表:
-- 职工(职工号,姓名,年龄,性别);
-- 社会团体(社团号,名称,负责人,活动地点)
--参加(职工号,社团号,参加日期)
---其中: (1)职工表的主码为职工号。
--(2)社会团体表的主码为社团号;外码为负责人,被参照表为职工表,对应属性为职工号。
--(3)参加表的职工号和社团号为外码;职工号为外码,其被参照表为职工表,对应属性为职工号;
--社团号为外码,其被参照表为社会团体表,对应属性为社团号。
--试用SQL语句表达下列 *** 作:
---1.定义职工表、社会团体表和参加表,并说明其主码和参照关系。
create table em
(
emid varchar(5) primary key,
emname nvarchar(5) not null,
age int,
sex nchar(1))
create table team
(
tid char(3) primary key,
tname nvarchar(10) not null,
leader varchar(5) foreign key references em(emid),
workstation nvarchar(20)
)
create table takepartin
(emid varchar(5) foreign key references em(emid),
tid char(3) foreign key references team(tid),
takedate smalldatetime,
primary key(emid,tid))
--- 2.建立下列两个视图: 社团负责人(社团号,名称,负责人职工号,负责人姓名,负责人性别);
create view leaders
as
select tid,tname,ememid,emname,sex from team join emp on teamemid=teamleader;
----参加人情况(职工号,姓名,社团号,社团名称,参加日期)。
create view takes
as
select Aemid,emname,ctid,tname,takedate from emp A join takepartin B on aemid=Bemid
join team C on Btid=Ctid
--3.查找参加的职工号和姓名。
select emid,emname from takes where tname='唱歌队' or tname='篮球队'
---4.查找没有参加任何社会团体的职工情况。
select from emp where emid not in(select emid from takepartin)
--5.查找参加了全部社会团体的职工情况。
以上就是关于数据库SQL问题:查询表达全部的内容,包括:数据库SQL问题:查询表达、sql查询一段时期里每一天所有员工的打卡记录、设职工社团数据库有三个基本表: 职工(职工号,姓名,年龄,性别); 社会团体(社团号,名称,负责人等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)