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]
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi