将一些列从一个表复制到另一个表,同时还添加用户输入值

时间:2018-07-27 14:16:41

标签: sql sql-server

我有两个表,表1和表2。表2包含与表1完全相同的列,另外还有五个列。表1包含基本的员工信息,表2包含每次员工不在工作的历史记录。

通过VBA构建的程序,用户可以将雇员标记为缺席,然后提供一种缺勤类型,可以授予例外,然后提供例外原因。每当创建缺勤时,我都希望从表1复制员工信息,并将其与缺勤,异常和异常原因的类型一起插入表2中。

我知道如何将信息从表1复制到表2,但是我该怎么做并从用户输入中插入新值?

INSERT INTO Table 2(
FirstName,
LastName,
AgentName,
Location,
EmployeeGroup,
ContractAgency,
Manager,
Supervisor,
Team,
Title,
Position,
StaffCIMID,
FTPT,
Bilingual,
Five9Email,
Email,
WeekdaySchedule,
WeekendSchedule,
CreatedBy,
CreatedDate,
ModifiedBy,
ModifiedDate,
Notseatedreason,
Exception,
Exceptionreason
)

SELECT (
FirstName,
LastName,
AgentName,
Location,
EmployeeGroup,
ContractAgency,
Manager,
Supervisor,
Team,
Title,
Position,
StaffCIMID,
FTPT,
Bilingual,
Five9Email,
Email,
WeekdaySchedule,
WeekendSchedule
)
FROM Table 1 
WHERE AgentName = 'userselectedvalue'

CreatedBy,CreatedDate,Notseatedreason,Exception,Exceptionreason 表2上需要根据用户输入填写的其他列。 Createdby仅捕获AD用户名,createddate仅捕获系统时间,notseatedreason是VBA表单用户输入,Exception是基于复选框的VBA用户表单位,Exceptionreason是VBA用户表单输入。

1 个答案:

答案 0 :(得分:3)

您似乎想要:

insert into table2 (col1, col2, col3, col4, . . .)
   select col1, col2, @inputvalue1, @inputvalue2, . . .
   from table1 t1
   where . . .;

一个select语句,您可以在其中定义常量,可以来自一个或多个运算符的函数或subquery