【发布时间】:2023-04-02 20:27:01
【问题描述】:
我查看了其他几个此类问题,但没有找到可以帮助我解决此问题的问题。我想要做的是:我想为所有员工创建一个表,以便分配一个EmployeeID,它将在其他几个表中使用。那张桌子和其他桌子工作正常。当我尝试根据EmployeeType 创建一个新表时,我的问题就出现了,这样我就可以仅根据特定类型的员工提出信息。在所有三个表的 SELECT 语句中,我收到此错误:
'(' 附近的语法不正确。需要 ID。
我已经用谷歌搜索并搜索了如何解决它,但我尝试过的任何方法都不起作用。我错过了什么?
CREATE TABLE Employees
(
EmployeeID int NOT NULL PRIMARY KEY IDENTITY,
EmpFirstName char(50) NOT NULL,
EmpLastName char(50) NOT NULL,
EmpAddress varchar(50) NOT NULL,
EmpCity char(50) NOT NULL,
EmpState char(2) NOT NULL,
EmpZipCode varchar(10) NOT NULL,
EmpPhone varchar(12) NOT NULL,
EmpJobTitle char(30) NOT NULL,
EmployeeType char(30) NOT NULL,
Salary money NOT NULL,
HoursPerWeek int NOT NULL,
);
CREATE TABLE Collective AS
(SELECT
*
FROM
[dbo].[Employees]
WHERE
EmployeeID = Employees.EmployeeID
AND EmployeeType = 'Collective');
CREATE TABLE PaidStaff AS
(SELECT
EmployeeID AS ReviewerID,
EmpFirstName,
EmpLastName,
EmpAddress,
EmpCity,
EmpState,
EmpZipCode,
EmpPhone,
EmpJobTitle
Salary,
HoursPerWeek
FROM
Employees
WHERE
EmployeeID = Employees.EmployeeID
AND EmployeeType = 'PaidStaff');
CREATE TABLE Volunteers AS
(SELECT
EmployeeID AS ReviewerID,
EmpFirstName,
EmpLastName,
EmpAddress,
EmpCity,
EmpState,
EmpZipCode,
EmpPhone,
EmpJobTitle
FROM
Employees
WHERE
EmployeeType = 'Volunteer');
【问题讨论】:
-
您是否尝试使用
create view而不是create table? -
没有。它必须是一张桌子。我确实尝试将其更改为视图,但我得到了同样的错误。
标签: sql sql-server tsql