Я не могу понять, что не так с моей хранимой процедурой.
CREATE PROCEDURE duplicatecheck2
@QmemberID INT,
@InputDate DATE
AS
INSERT INTO tbl_availableMembers
SELECT memberId
FROM tbl_attendancesheet
WHERE MemberId = @QmemberId
AND [date] = @InputDate
AND [clockin] IS NOT NULL
AND [clockout] IS NULL
UNION
INSERT INTO tbl_availableMembers
SELECT memberId
FROM tbl_attendancemembers
WHERE memberId NOT IN (SELECT memberId
FROM tbl_attendanceSheet)
WHERE date = @InputDate)
Я получаю следующие ошибки:
Сообщение 156, Уровень 15, Состояние 1, Процедура duplicatecheck2, Строка 14
Неверный синтаксис рядом с ключевым словом «Вставить».
Сообщение 156, Уровень 15, Состояние 1, Процедура duplicatecheck2, Строка 18
Неверный синтаксис рядом с ключевым словом «ГДЕ».
Моя другая хранимая процедура, в которой сработало объединение:
CREATE PROCEDURE duplicateCheck
@inputdate DATE
AS
BEGIN
DELETE FROM tbl_availableMembers
INSERT INTO tbl_availableMembers
SELECT memberId
FROM tbl_attendancemembers
WHERE memberId NOT IN (SELECT memberId FROM tbl_attendanceSheet)
UNION
SELECT memberId
FROM tbl_attendancemembers
WHERE memberId IN (SELECT memberId
FROM tbl_attendanceSheet
GROUP BY memberId, date
HAVING COUNT(*) <= 1 AND date = @inputdate)
END