加入无法正常工作
Join not working properly
我正在向 table 中插入值,如下所示
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'
但我收到一个错误:
An expression of non-boolean type specified in a context where a condition is expected, near 'Emp'.
这里有什么问题?
更新
我这样试过但是出现错误
Incorrect syntax near the keyword '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'
您需要一个 on
子句:
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
ON lev.?? = emp.??
-----^
WHERE emp.Status in ('A', 'S') and
YEAR(emp.Date_Of_Joining) = '2015';
我不知道加入什么列。在第一个查询中,WHERE
子句位于 FROM
子句中间 . The
WHERE` 子句之后。
我正在向 table 中插入值,如下所示
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'
但我收到一个错误:
An expression of non-boolean type specified in a context where a condition is expected, near 'Emp'.
这里有什么问题?
更新
我这样试过但是出现错误
Incorrect syntax near the keyword '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'
您需要一个 on
子句:
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
ON lev.?? = emp.??
-----^
WHERE emp.Status in ('A', 'S') and
YEAR(emp.Date_Of_Joining) = '2015';
我不知道加入什么列。在第一个查询中,WHERE
子句位于 FROM
子句中间 . The
WHERE` 子句之后。