如何为以下问题做出选择语句?
Posted
技术标签:
【中文标题】如何为以下问题做出选择语句?【英文标题】:How do I make a select statement for the following question? 【发布时间】:2020-08-17 11:43:51 【问题描述】:很抱歉问了一个简单的问题,但是您如何创建此 Select 语句以及您的思考过程是什么? 我已经列出了我认为此 select 语句所需的下表。
问题:创建一个SELECT语句来显示服务的次数列表 要求每个工作人员。显示员工id、员工姓名、service_no、service’s 描述和请求的总次数。
Table: SERVICES
Column Name || Constraints || Default Value || Data Type || Length
SERVICE_NO || Primary Key || || VarChar2 || 10
DESCRIPTION || || || VarChar2 || 50
CONTRACTOR || || || VarChar2 || 20
CCONTACT_NO || || || VarChar2 || 10
Table: SERVICE_REQUEST
Column Name || Constraints || Default Value || Data Type || Length
SR_ID || Primary Key || || Number || 10
SERVICE_NO || Foreign Key to the SERVICES table || || VarChar2 || 10
STAFF_ID || Foreign Key to the STAFF table || || VarChar2 || 10
TEC_ID || Foreign Key to the TECHNICIANS table || || VarChar2 || 10
REQUEST_DATE || || || Date ||
REQUEST_TIME || || || VarChar2 || 10
Table: STAFF
Column Name || Constraints || Default Value || Data Type || Length
STAFF_ID || Primary key || || VarChar2 || 10
SNAME || || || VarChar2 || 30
SIC_NO || Secondary key || || VarChar2 || 10
SADDRESS || || || VarChar2 || 70
SPHONE || || || VarChar2 || 8
POSITION || || || VarChar2 || 30
HIRE_DATE || || || Date ||
SALARY || || || Number || 7,2
SCH_ID || Foreign Key to the SCHOOL table || || VarChar2 || 10
【问题讨论】:
您为什么不尝试一下并告诉我们您的问题在哪里?这对你来说会很棒...... 您需要连接所有三个表并使用group by
子句来显示每个员工/服务组合的总数。网上有很多例子。
将Services和staff的主键内联到service_request表中,按结果中你想要的列分组,使用count(*)表示次数!
SQL select s.staff_id, s.sname, ser.service_no, ser.description, count(ser.service_no) from staff s inner join service_request sr on s.staff_id = sr.staff_id inner join services ser on ser.service_no = sr.service_no group by s.staff_id, s.sname, ser.service_no, ser.description /
所以我为我的查询做了这个,但是我不确定这是否正确,因为我的讲师没有提供任何数据,我无法检查我是否正确;-;
您的查询看起来不错。
【参考方案1】:
使用查询。
select s.staff_id,
s.sname,
ser.service_no,
ser.description,
(select count(service_no) from staff where service_no = ser )
from service_request sr ,services ser
where s.staff_id = sr.staff_id
and ser.service_no = sr.service_no;
【讨论】:
以上是关于如何为以下问题做出选择语句?的主要内容,如果未能解决你的问题,请参考以下文章