• arun.sas (11/7/2009)


    Hi,

    try this

    update a

    set a.MemoStatus = (case when (select 1 from MemoDetail b where b.EmployeeId = a.EmployeeId )=1 then 'Y'else 'N' end)

    from Employee a

    declare @Employee table (employee_id int primary key, name char(1) not null, memostatus char(1) null);

    insert @Employee (employee_id, name) values (1, 'a');

    insert @Employee (employee_id, name) values (2, 'b');

    insert @Employee (employee_id, name) values (3, 'c');

    insert @Employee (employee_id, name) values (4, 'd');

    insert @Employee (employee_id, name) values (5, 'e');

    insert @Employee (employee_id, name) values (6, 'f');

    declare @MemoDetail table (employee_id int not null, issued_by varchar(10) not null, date datetime not null);

    insert @MemoDetail (employee_id, issued_by, date) values (3, 'Edwin', '2009-01-05');

    insert @MemoDetail (employee_id, issued_by, date) values (3, 'Elsa', '2009-02-10');

    insert @MemoDetail (employee_id, issued_by, date) values (5, 'Rocky', '2009-03-03');

    insert @MemoDetail (employee_id, issued_by, date) values (5, 'Bela', '2009-02-01');

    update a

    set a.MemoStatus = (case when (select 1 from @MemoDetail b where b.employee_id = a.employee_id )=1 then 'Y'else 'N' end)

    from @Employee a

    select * from @Employee

    [font="Courier New"]Msg 512, Level 16, State 1, Line 17

    Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

    [/font][font="Courier New"]The statement has been terminated.[/font]