Best thing to do is store loginname in the table. Since you are asking this question, I assume that is not possible.So here is some code that will get you are partial answer:set nocount oncreate table #User (First_Name varchar(30) NOT NULL, Last_Name varchar(40) NOT NULL)Insert #User (First_Name, Last_Name) Values ('Bill', 'Smith')Insert #User (First_Name, Last_Name) Values ('Tom', 'Smith')Insert #User (First_Name, Last_Name) Values ('Jim', 'Smithers')Insert #User (First_Name, Last_Name) Values ('Mary', 'Allen')declare @NtUserID varchar(30)-- find user Mary Allen with a simple select statementprint '** find user Mary Allen with a simple select statement'select @NtUserID = 'Allen'Select * from #User where Last_Name = @NtUserIDprint ''-- find user Tom Smith with advanced logicprint '** find user Tom Smith with advanced logic'select @NtUserID = 'SmithT'Select * from #User where Last_Name = Left(@NtUserID, DataLength(Last_Name)) and Left(First_Name, (Len(@NtUserID)-DataLength(Last_Name))) = Right(@NtUserID, (Len(@NtUserID)-DataLength(Last_Name)))print ''-- find user Mary Allen with advanced logicprint '** find user Mary Allen with advanced logic'select @NtUserID = 'Allen'Select * from #User where Last_Name = Left(@NtUserID, DataLength(Last_Name)) and Left(First_Name, (Len(@NtUserID)-DataLength(Last_Name))) = Right(@NtUserID, (Len(@NtUserID)-DataLength(Last_Name)))print ''--now add user Tina Smithprint '** now add user Tina Smith'Insert #User (First_Name, Last_Name) Values ('Tina', 'Smith')print ''-- find user Tina Smith with advanced logicprint '** find user Tina Smith with advanced logic'select @NtUserID = 'SmithTi'Select * from #User where Last_Name = Left(@NtUserID, DataLength(Last_Name)) and Left(First_Name, (Len(@NtUserID)-DataLength(Last_Name))) = Right(@NtUserID, (Len(@NtUserID)-DataLength(Last_Name)))print ''-- now find user Tom Smith with advanced logic (after Tina Smith has been added)-- PROBLEM: this select returns both Tom Smith AND Tina Smithprint '** now find user Tom Smith with advanced logic (after Tina Smith has been added)'print '** PROBLEM: this select returns both Tom Smith AND Tina Smith'select @NtUserID = 'SmithT'Select * from #User where Last_Name = Left(@NtUserID, DataLength(Last_Name)) and Left(First_Name, (Len(@NtUserID)-DataLength(Last_Name))) = Right(@NtUserID, (Len(@NtUserID)-DataLength(Last_Name)))print ''drop table #UserHere are the results:** find user Mary Allen with a simple select statementFirst_Name Last_Name ------------------------------ ---------------------------------------- Mary Allen ** find user Tom Smith with advanced logicFirst_Name Last_Name ------------------------------ ---------------------------------------- Tom Smith ** find user Mary Allen with advanced logicFirst_Name Last_Name ------------------------------ ---------------------------------------- Mary Allen ** now add user Tina Smith ** find user Tina Smith with advanced logicFirst_Name Last_Name ------------------------------ ---------------------------------------- Tina Smith ** now find user Tom Smith with advanced logic (after Tina Smith has been added)** PROBLEM: this select returns both Tom Smith AND Tina SmithFirst_Name Last_Name ------------------------------ ---------------------------------------- Tom SmithTina Smith
The problem is, once you add a second user with the same last name, the SQL statement is unable to determine which "SmithT" you want, Tom or Tina.Edited by - MuffinMan on 04/22/2002 09:56:32