首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新和函数

更新和函数
EN

Stack Overflow用户
提问于 2010-07-13 08:26:50
回答 5查看 591关注 0票数 1

我是一名学生,这是我家庭作业的一部分。

我必须通过10%...is更新两个员工的工资,有一个函数可以这样做,或者我必须计算这些数字,然后更改数字,即

更新Employee set Wage=10 where Wage=51000

这就是整个问题:选择一个EEO-1分类:将具有所选EEO-1分类的所有员工的工资增加10%。

EEO分类位于“职务”表中,薪资位于“员工表”中。我也需要以某种方式加入他们。它需要是一个单独的声明...

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-13 18:55:16

由于这是家庭作业,你需要知道聪明的alec答案。使用JOIN语法发布的答案是错误的,因为它是专有代码。正确的alec答案是使用标准SQL (最好是您选择的方言支持的SQL,例如SQL Server)。您还应该指出,ISO/IEC 11179数据元素名称标准要求可能有多个成员的集合使用复数名称(例如,JobTitles而不是JobTitle),并查找企业中已使用的已建立的集合名称(例如,人员而不是员工)。此外,如果职位属性是使用单独的表建模的,那么salaries也应该有自己的表(并且命名为Payroll,而不是Salaries):

代码语言:javascript
复制
UPDATE Payroll 
   SET Wage = Wage * 1.1 
 WHERE EXISTS (
               SELECT * 
                 FROM Employees AS E1
                      INNER JOIN JobTitles AS J1
                         ON E1.employee_number = J1.employee_number
                            AND J1.EEO_classification = 'EEO-1'
                WHERE E1.employee_number = Payroll.employee_number
              );

然后,企业需要过去的工资以及当前的工资(例如,为了能够提交纳税申报单),因此工资很可能是一个有效状态时态表,您需要找到每个员工的最新状态……你知道,我越想这个问题,我就越确信这个企业根本不存在。我的建议是,假设这是一个刁钻的问题,并拒绝回答它,直到他们至少修复了模式……也许可以在暑假问一问实习的事,这样你就可以自己解决问题了……

票数 1
EN

Stack Overflow用户

发布于 2010-07-13 08:30:58

更新的秘诀是确保您可以先进行选择。

因此,请关注如何获取所有想要选择的字段。

你的关键将是一个Inner Join (毫无疑问,有人会给出一个完整的答案,但我反对打断学习过程)。

接下来,您需要解决如何计算工资的问题。

幸运的是,您可以首先在您的select中执行此操作,以确保您在正确的轨道上。

类似于:

代码语言:javascript
复制
SELECT *, (wage*1.1) as newWage FROM Employee 
 *INNER JOIN STUFF* 
 WHERE *CONDITION STUFF (EEO-1 etc.)*

一旦您对select看起来不错感到满意,就可以将其转换为更新,最酷的是您可以实际更新连接查询,只需抓取select、inner和where内容即可。

代码语言:javascript
复制
UPDATE Employee
SET Salary.Wage = (wage*1.1)
FROM Employee
* INNER JOIN STUFF*
WHERE *CONDITION STUFF*
票数 1
EN

Stack Overflow用户

发布于 2010-07-13 08:37:38

您需要的是一条使用内部联接的UPDATE语句。

代码语言:javascript
复制
UPDATE Employee
SET Wage = e.Wage * 1.10
FROM Employee as e
INNER JOIN JobTitle as jt
  ON jt.[id] = e.[jobId]
Where jt.Title = 'EEO-1'

我不得不在这里对你的模式做一些假设,我假设在Employee和Job Title表之间有一些链接。我还假设Job Title是一个字符串,而不是一个整数。希望这能为您提供所需语法的大致轮廓。

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

https://stackoverflow.com/questions/3233332

复制
相关文章

相似问题

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