У меня много таблиц, но, например, рассмотрим 2 таблицы i.e. Employees и FileEntries. Я собираю эти поля из обеих таблиц EmployeeID,FileStatus,FileName,EmployeeName
. Эти обе таблицы имеют 1 общее поле, то есть EmployeeID
. FileEntries может иметь EmployeeID, даже если это не в таблице Employees. Поэтому я хочу выбрать все записи из обеих таблиц, но новое поле должно показывать «NotRegistered», если оно не находится в таблице Employees.Почему мой запрос не показывает правильные результаты?
)
@EmployeeID int
)
Alter PROCEDURE [dbo].[Modify_RejectedFiles] -- '2015-01-06 07:41:00', '2015-01-06 07:41:00',1,3,'','20001018783815'
(
@FromDate SMALLDATETIME,
@ToDate SMALLDATETIME,
@OfficeID INT=0, --it represents id of a company/branch/organization being logged in
@Type INT=0, --it represents type of a user being logged in i.e. 1=orgranization, 2=company, 3=branch
@EmployerUniqueID VARCHAR(15)='',
@EmployeeUniqueID VARCHAR(15)=''
)
AS
BEGIN
DECLARE @Branches TABLE
(
BranchID INT
)
IF @Type = 1 --Organization
BEGIN
INSERT INTO @Branches
SELECT BranchID From vw_OrganizationTree WHERE OrganizationID = @OfficeID --inserts 3 always because we got only 1 organization i.e. 3
END
IF @Type = 2 --Company
BEGIN
INSERT INTO @Branches
SELECT BranchID From vw_OrganizationTree WHERE CompanyID = @OfficeID --inserts 3 always because we got only 1 company i.e. 3
END
IF @Type = 3 -- i.e. Branch
BEGIN
INSERT INTO @Branches
SELECT BranchID From vw_OrganizationTree WHERE BranchID = @OfficeID
END
Declare @IsRegistered varchar(20)= 'Registered'
If ((Select count(*) from RegisteredEmployees where EmployeeUniqueID= @EmployeeUniqueID) <1)
Begin
Set @IsRegistered = 'Not Yet'
End
Select distinct FE.EmployeeUniqueID, RE.EmployeeName, Empr.EmployerName, Br.BranchName,
FE.IsRejected, FE.RejectedFileCreationDateTime
From
File_EDREntries FE
left Join
RegisteredEmployees RE
ON FE.EmployeeUniqueID = RE.EmployeeUniqueID
left Join Employers Empr
ON RE.Employer_ID = Empr.ID
left Join Branches Br
ON Br.BranchID = Empr.Branch_ID
WHERE
FE.IsRejected = 1 --20017128203780
AND Empr.Branch_ID in (Select BranchID from @Branches)
так, что проблема есть? Есть ли ошибка? – Mukund
Это не поможет, что ваш вопрос использует разные имена, кроме кода (Таблица Employees = RegisteredEmployees?). Вы спрашиваете, как сделать NULL EmployeeName отображаемым как «NotRegistered»? –