У меня есть хранимая процедура, в которой я пытаюсь получить последний тикет, заполненный каждым пользователем, указанным в строке имен пользователей, разделенных запятыми. У пользователя может не быть связанного с ним билета, в этом случае я знаю, что мне просто нужно вернуть ноль. Две таблицы, с которыми я работаю, определены следующим образом:
User
----
UserName,
FirstName,
LastName
Ticket
------
ID,
CompletionDateTime,
AssignedTo,
AssignmentDate,
StatusID
TicketStatus
------------
ID,
Comments
Я создал хранимую процедуру, в которой я пытаюсь вернуть последний заполненный тикет для списка имен пользователей, разделенных запятыми. Каждая запись должна включать комментарии, связанные с ней. В настоящее время я пробую следующее:
CREATE TABLE #Tickets
(
[UserName] nvarchar(256),
[FirstName] nvarchar(256),
[LastName] nvarchar(256),
[TicketID] int,
[DateCompleted] datetime,
[Comments] text
)
-- This variable is actually passed into the procedure
DECLARE @userList NVARCHAR(max)
SET @userList='user1,user2,user2'
-- Obtain the user information for each user
INSERT INTO #Tickets
(
[UserName],
[FirstName],
[LastName]
)
SELECT
u.[UserName],
u.[FirstName],
u.[LastName]
FROM
User u
INNER JOIN dbo.ConvertCsvToTable(@userList) l ON u.UserName=l.item
На данный момент у меня есть имя пользователя, имя и фамилия для каждого переданного пользователя. Однако я не знаю, как на самом деле получить последний билет для каждого из этих пользователей.
Как мне это сделать? Я считаю, что я должен обновить временную таблицу, которую я создал. В то же время, id не знает, как получить только последнюю запись в операторе обновления.
Спасибо!