2015-12-11 18 views
0

Я вставив значение в таблицу, как показано нижеJoin не работает должным образом

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'.

Что здесь не так?

UPDATE

Я попытался, как это, но получаю ошибку, как

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' 
+0

Измените свой вопрос так, чтобы он был доступен для чтения – Amit

+0

@ Возможно, это причина для downvote? – BNN

+2

Это должно быть 'SELECT ... FROM ... LEFT JOIN .... WHERE .....' вы слишком сильно смешиваете синтаксис T-SQL - вам стоит взглянуть на подробности того, как писать правильное выражение 'SELECT' в электронной документации по SQL Server! –

ответ

1

Вам нужен 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` впоследствии.

+0

спасибо, сэр, позвольте мне попробовать и проверить – BNN

+0

получить ошибку как 'Msg 4104, уровень 16, состояние 1, строка 1 Идентификатор из нескольких частей" p_leave_allocation.MKey "не может быть связан.' – BNN

+0

получил это, сэр, спасибо много – BNN

Смежные вопросы