数据库SQL问题:查询表达

数据库SQL问题:查询表达,第1张

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_time

from 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_time

from 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查询一段时期里每一天所有员工的打卡记录、设职工社团数据库有三个基本表: 职工(职工号,姓名,年龄,性别); 社会团体(社团号,名称,负责人等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9700367.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存