2015-02-03 2 views
0

У меня много таблиц, но, например, рассмотрим 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) 
+0

так, что проблема есть? Есть ли ошибка? – Mukund

+1

Это не поможет, что ваш вопрос использует разные имена, кроме кода (Таблица Employees = RegisteredEmployees?). Вы спрашиваете, как сделать NULL EmployeeName отображаемым как «NotRegistered»? –

ответ

0

Use Case, когда RE.EmployeeUniqueID равно нулю, то «Еще не» еще «Registered» End в вашем окончательном выберите Query

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