【发布时间】:2016-03-17 08:05:58
【问题描述】:
我正在向下表中插入值
INSERT INTO p_leave_allocation_11122015(Mkey, Entry_Sr_no, Comp_mkey,FDepartment_Id,FModule_Id,Year, Emp_mkey, Emp_card_no, U_Datetime, Delete_Flag,Month12,PL_Days,)
SELECT
ROW_NUMBER() OVER(ORDER BY p_leave_allocation.MKey) + 1643,
ROW_NUMBER() OVER(ORDER BY Entry_Sr_no) + 898,
Comp_mkey, FDepartment_Id, FModule_Id,
'2016', Emp_mkey, Emp_card_no, U_Datetime,
Delete_Flag, Month12, 0
FROM
p_leave_allocation lev
WHERE
Emp_mst Emp
LEFT JOIN
p_leave_allocation AND Emp.status IN ('A','S')
AND YEAR(Emp.Date_Of_Joining) = '2015'
但我收到一个错误:
在预期条件的上下文中指定的非布尔类型表达式,靠近“Emp”。
这里有什么问题?
更新
我试过这样但得到错误
关键字“WHERE”附近的语法不正确。
代码是:-
INSERT INTO p_leave_allocation_11122015(Mkey, Entry_Sr_no, Comp_mkey,FDepartment_Id,FModule_Id,Year, Emp_mkey, Emp_card_no, U_Datetime, Delete_Flag,Month12,PL_Days,)
SELECT
ROW_NUMBER() OVER(ORDER BY p_leave_allocation.MKey) + 1643,
ROW_NUMBER() OVER(ORDER BY Entry_Sr_no) + 898,
Comp_mkey, FDepartment_Id, FModule_Id,
'2016', Emp_mkey, Emp_card_no, U_Datetime,
Delete_Flag, Month12, 0
FROM
p_leave_allocation lev LEFT JOIN Emp_mst emp
WHERE
emp.Status in ('A','S')
and
Year(emp.Date_Of_Joining) = '2015'
【问题讨论】:
-
格式化您的问题,使其可读
-
@Amit 是投反对票的原因吗?
-
应该是
SELECT ... FROM ... LEFT JOIN .... WHERE .....,你把 T-SQL 语法搞混了——你应该去 SQL Server 联机丛书上查看如何编写正确的SELECT语句的详细信息! -
@marc_s:非常感谢,让我试试看
-
@marc_s:先生,我试过了,但它不起作用。现在出现
Incorrect syntax near the keyword 'WHERE'.错误
标签: sql join sql-server-2005