Sql 使用联接的高级查询
我创建了以下表格:Sql 使用联接的高级查询,sql,sql-server,tsql,Sql,Sql Server,Tsql,我创建了以下表格: CREATE TABLE Employees ( EmployeeID int IDENTITY(1,1) PRIMARY KEY ,EmployeeNumber int UNIQUE ,DateOfBirth datetime NOT NULL ,FirstName nvarchar(14) NOT NULL ,MiddleName nvarcha
CREATE TABLE Employees
(
EmployeeID int IDENTITY(1,1) PRIMARY KEY
,EmployeeNumber int UNIQUE
,DateOfBirth datetime NOT NULL
,FirstName nvarchar(14) NOT NULL
,MiddleName nvarchar(14) NOT NULL
,LastName nvarchar(16) NOT NULL
,DateHired datetime NOT NULL
)
CREATE TABLE Customers
(
CustomerID int IDENTITY(1,1) PRIMARY KEY
,FirstName nvarchar(14) NOT NULL
,MiddleName nvarchar(14) NOT NULL
,LastName nvarchar(16) NOT NULL
,DateLastVisited datetime NOT NULL
,EmailAddress nvarchar(52) NOT NULL
)
CREATE TABLE Departments
(
DepartmentID int IDENTITY(1,1) PRIMARY KEY
,Code nchar(4) UNIQUE
,Name nvarchar(40) NOT NULL
)
CREATE TABLE DepartmentEmployees
(
DepartmentEmployeeID int IDENTITY(1,1) PRIMARY KEY
,EmployeeID int NOT NULL
CONSTRAINT Department_Employee REFERENCES Employees(EmployeeID)
,DepartmentID int NOT NULL
CONSTRAINT Employee_Department REFERENCES Departments(DepartmentID)
,DateStarted datetime NOT NULL
,DateEnded datetime NOT NULL
)
CREATE TABLE Salaries
(
SalaryID int IDENTITY(1,1) PRIMARY KEY
,EmployeeID int NOT NULL
CONSTRAINT Salaried_Employee REFERENCES Employees(EmployeeID)
,Amount money NOT NULL
,DateStarts datetime NOT NULL
,DateEnds datetime NOT NULL
)
我已根据表格要求插入了数据
我正在研究这个问题:获取所有员工的名字和姓氏,以及部门代码和薪水
我为这个问题写了这个查询,但它不起作用
SELECT
E.FirstName, E.LastName, D.Code, S.Amount
FROM
Employees E
INNER JOIN
Salaries S ON E.EmployeeID = S.EmployeeID
INNER JOIN
Departments D ON D.DepartmentID = E.EmployeeID
请帮帮我
SELECT E.FirstName,E.LastName, D.Code,S.Amount From Employees E
Inner Join Salaries S
On E.EmployeeID= S.EmployeeID
Inner join Departments D
**on D.DepartmentID= E.EmployeeID**
您确定要使用departmentID加入到EmployeeID吗?此查询将提供您所需的所有信息
select firstname, lastname ,Departments.Code as DepartmentCode,Salaries.Amount as Salary
from
Employees
inner join DepartmentEmployees on Employees.EmployeeID = DepartmentEmployees.EmployeeID
inner join Departments on DepartmentEmployees.DepartmentID = Departments.DepartmentID
inner join Salaries on Employees.EmployeeID = Salaries.EmployeeID
每个员工都属于某个部门的员工。因此,您必须将员工与部门员工合并。在“下一次加入”中,您可以找到部门代码,在“第三次加入”中,您可以从“薪资表”中找到薪资金额。员工和部门之间没有直接联系,您需要加入“员工-部门员工-部门”当您说它不起作用时,解释一下原因很有帮助。不工作可能意味着很多事情;一个错误,意外的结果,没有结果,会导致你的电脑着火。最后一个是笑话,但你明白了。请帮助我们解释正在发生的事情以及您期望发生的事情。@jenna您的加入不正确。查看部门员工表,也许它会帮助你找到答案。你应该在问题评论中提问。是的。。看来我需要赢得更多的声誉才能做到这一点。