首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL知识在日常工作活动中的应用

SQL知识在日常工作活动中的应用
EN

Stack Overflow用户
提问于 2016-04-01 11:00:58
回答 2查看 397关注 0票数 0

我的问题是如何为下面突出显示的/粗体问题正确地编写SQL查询。

HMO数据库中有一个存储医生工作hours.Table的表,其中包含"FirstName“、"LastName”、"Date“、"HoursWorked”等字段。编写一条sql语句,检索名为Joe的医生1月至3月的平均工作时间。

到目前为止我已经

代码语言:javascript
复制
SELECT HoursWorked
FROM Table
WHERE DATE = (January - March) AND
SELECT AVG(HoursWorked) FROM Table WHERE FirstName="Joe",LastName="Doe"*
EN

回答 2

Stack Overflow用户

发布于 2016-04-01 11:22:33

这听起来像是一个家庭作业问题(我们在这里不回答你的问题,但我们可以尝试给你一些指导)。

你想把所有你想从你的选择返回的东西放在第一位,你想把你所有的搜索条件放在最后。

因此,一般格式是:

代码语言:javascript
复制
SELECT Column1,
       Column2,
       Column3,
   FROM YourTable
   WHERE Column4 = Restriction1
         AND Column5 = Restriction2

接下来您需要考虑的是如何在数据库表中格式化日期。希望它们保留在一个日期时间或日期类型的列中(选项将取决于您正在使用的数据库引擎,例如、Oracle或MySql)。实际上,一些人们使用的旧数据库可以以各种格式存储日期,这使得这变得更加困难,但是既然我假设这是一个家庭作业类型的问题,那么让我们假设它是一种日期时间格式。

您可以通过将列与值进行比较来指定限制,因此,如果您希望将日期在2012年3月2日午夜之后的所有行,您将有where子句:

代码语言:javascript
复制
WHERE MyDateColumn >= '2012-03-02 00:00:00'

请注意,为了避免混淆,我们通常尝试将日期格式化为“年度月-日小时:分钟:第二”。这是因为在不同的国家,日期通常是用不同的格式写成的,这被认为是一种普遍的格式,在任何地方都被理解(至少是计算机所理解的)。

因此,您需要将这些比较组合在您的WHERE中,一个用于某个特定日期之后的日期,另一个用于在另一个时间点之前的日期。

如果你试一试,看看你的目标是什么,用你的进步来更新你的问题,如果你有问题,就会有人帮你完成它。

如果您无法访问实际的数据库,并且需要尝试语法,请尝试以下站点:http://sqlfiddle.com/

票数 1
EN

Stack Overflow用户

发布于 2016-04-01 22:41:59

你已经把答案写好了

代码语言:javascript
复制
SELECT AVG(HoursWorked) FROM Table WHERE FirstName="Joe",LastName="Doe"*

只需修复查询即可。

代码语言:javascript
复制
 SELECT AVG(HoursWorked) as AVGWORKED FROM Table WHERE FirstName='Joe' AND LastName='Doe'

该查询将为您提供Joe的平均工作时数,但是您只需要在添加下一个“和”之间得到一个小时,如果您使用的是SQL server,您可以使用内置函数DateFromParts(年份、月、日)来创建一个新日期,或者如果您使用的是另一个数据库引擎,则可以将一个字符串转换为一个DateColumn转换( Date,'MM/dd/yyyy')

示例

代码语言:javascript
复制
 SELECT AVG(HoursWorked) as AVGWORKED FROM Table WHERE FirstName='Joe' AND LastName='Doe' AND DateColumn between DateFromParts(year,month,day) and Convert(Date,'MM/dd/yyyy')

在示例中,我展示了这两种方法(初始日期的日期部分和结束日期的日期)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36354642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档